From ca709b34ce22073dd5256eba2cf7e54955744c61 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 31 Aug 2020 23:32:05 +0200 Subject: [PATCH] Finish implementing common inputTypeCheck --- Exercise 1/10 - Bakekurs/10-a.py | 6 ++- .../11-b.py | 42 ++++++++----------- Exercise 1/8 - Vitenskapelig notasjon/8-a.py | 4 +- Exercise 1/8 - Vitenskapelig notasjon/8-b.py | 6 ++- Exercise 1/9 - Tetraeder.py | 13 ++---- Exercise 1/README.md | 4 ++ 6 files changed, 36 insertions(+), 39 deletions(-) create mode 100644 Exercise 1/README.md diff --git a/Exercise 1/10 - Bakekurs/10-a.py b/Exercise 1/10 - Bakekurs/10-a.py index 631936b..f8afb8e 100644 --- a/Exercise 1/10 - Bakekurs/10-a.py +++ b/Exercise 1/10 - Bakekurs/10-a.py @@ -21,7 +21,11 @@ cookies = recipe( standardPortions=48, ) -cookieNumber = int(input('Hvor mange cookies ønsker du å bake? ')) +cookieNumber = inputTypeCheck( + message = 'Hvor mange cookies ønsker du å bake? ', + type = float, + errorMessage = 'Beklager, det du skrev inn er ikke et tall. Prøv igjen\n' +) print('Antall cookies:', cookieNumber) cookies.getIngredients(cookieNumber) \ No newline at end of file diff --git a/Exercise 1/11 - James Bond and Operation Round/11-b.py b/Exercise 1/11 - James Bond and Operation Round/11-b.py index ac7d88e..0f8a727 100644 --- a/Exercise 1/11 - James Bond and Operation Round/11-b.py +++ b/Exercise 1/11 - James Bond and Operation Round/11-b.py @@ -35,32 +35,24 @@ def myRoundFunction(integerPart,decimalPart,amountOfDecimals): else: return addPointAtOffset(int(numberString[:roundOffset]) + 1, decimalOffset) -def main(): - integerPart = inputTypeCheck( - message='Oppgi heltallsdelen av tallet (det foran punktum): ', - type=int, - errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n' - ) +integerPart = inputTypeCheck( + message='Oppgi heltallsdelen av tallet (det foran punktum): ', + type=int, + errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n' +) - decimalPart = inputTypeCheck( - message='Oppgi desimaldelen av tallet (det bak punktum): ', - type=int, - errorMessage='Beklager, dette er ikke et tall, eller inneholder et desimalpunkt. Prøv igjen\n' - ) +decimalPart = inputTypeCheck( + message='Oppgi desimaldelen av tallet (det bak punktum): ', + type=int, + errorMessage='Beklager, dette er ikke et tall, eller inneholder et desimalpunkt. Prøv igjen\n' +) - amountOfDecimals = inputTypeCheck( - message='Oppgi ønsket antall desimaler i avrunding: ', - type=int, - errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n' - ) +amountOfDecimals = inputTypeCheck( + message='Oppgi ønsket antall desimaler i avrunding: ', + type=int, + errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n' +) - roundedNumber = removeEmptyDecimals(myRoundFunction(integerPart, decimalPart, amountOfDecimals)) +roundedNumber = removeEmptyDecimals(myRoundFunction(integerPart, decimalPart, amountOfDecimals)) - print(f'{integerPart}.{decimalPart} avrundet til {amountOfDecimals} desimaler blir {roundedNumber}') - -def test(): - print(myRoundFunction(2, 5, 0)) - print(myRoundFunction(2, 15, 1)) - print(myRoundFunction(2, 500000000000000000001, 0)) - -main() \ No newline at end of file +print(f'{integerPart}.{decimalPart} avrundet til {amountOfDecimals} desimaler blir {roundedNumber}') \ No newline at end of file diff --git a/Exercise 1/8 - Vitenskapelig notasjon/8-a.py b/Exercise 1/8 - Vitenskapelig notasjon/8-a.py index ffe506b..9832815 100644 --- a/Exercise 1/8 - Vitenskapelig notasjon/8-a.py +++ b/Exercise 1/8 - Vitenskapelig notasjon/8-a.py @@ -6,12 +6,12 @@ substance = input('Si et stoff du er i besittelse av: ') weight = inputTypeCheck( message='Hva er molvekt i gram for vann? ', type=float, - errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n' + errorMessage='Beklager, det du skrev inn er ikke et tall. Prøv igjen\n' ) amount = inputTypeCheck( message='Hvor mange gram vann har du? ', type=float, - errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n' + errorMessage='Beklager, det du skrev inn er ikke et tall. Prøv igjen\n' ) numberOfMolecules = (amount * AVOGADROS_CONSTANT / weight) diff --git a/Exercise 1/8 - Vitenskapelig notasjon/8-b.py b/Exercise 1/8 - Vitenskapelig notasjon/8-b.py index c4ed1ac..78dd4e8 100644 --- a/Exercise 1/8 - Vitenskapelig notasjon/8-b.py +++ b/Exercise 1/8 - Vitenskapelig notasjon/8-b.py @@ -2,7 +2,11 @@ from common import inputTypeCheck AMOUNT_OF_POSSIBLE_MELODIES = 8.25e19 -melodiesHeard = int(input('Antall ulike 10-toners melodilinjer du har hørt? ')) +melodiesHeard = inputTypeCheck( + message = 'Antall ulike 10-toners melodilinjer du har hørt? ', + type = int, + errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n' +) percentMelodiesHeard = melodiesHeard / AMOUNT_OF_POSSIBLE_MELODIES * 100 diff --git a/Exercise 1/9 - Tetraeder.py b/Exercise 1/9 - Tetraeder.py index bb75afa..3aa0ca2 100644 --- a/Exercise 1/9 - Tetraeder.py +++ b/Exercise 1/9 - Tetraeder.py @@ -1,12 +1,5 @@ from math import sqrt - -def inputTypeCheck(message, type, errorMessage): - while True: - inputValue = input(message) - try: - return type(inputValue) - except ValueError: - print(errorMessage) +from common import inputTypeCheck class Tetraeder: def __init__(self, length): @@ -24,8 +17,8 @@ print() figure2 = Tetraeder( inputTypeCheck( message='Skriv inn en høyde: ', - type=int, - errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n' + type=float, + errorMessage='Beklager, det du skrev inn er ikke et tall. Prøv igjen\n' ) ) diff --git a/Exercise 1/README.md b/Exercise 1/README.md new file mode 100644 index 0000000..e1e7868 --- /dev/null +++ b/Exercise 1/README.md @@ -0,0 +1,4 @@ +# Exercise 1 + +## About `common.py` +I've copied the function inputTypeCheck() into a common.py for each directory. Normally, I would've made it a module, but to avoid system specific bugs, I've decided not edit global environment variables like PYTHONPATH or edit the sys.path. This means, at least as far as I know, that I can't use relative imports. \ No newline at end of file