Finish implementing common inputTypeCheck

This commit is contained in:
Oystein Kristoffer Tveit 2020-08-31 23:32:05 +02:00
parent db184fe601
commit ca709b34ce
6 changed files with 36 additions and 39 deletions

View File

@ -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)

View File

@ -35,32 +35,24 @@ def myRoundFunction(integerPart,decimalPart,amountOfDecimals):
else:
return addPointAtOffset(int(numberString[:roundOffset]) + 1, decimalOffset)
def main():
integerPart = inputTypeCheck(
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(
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(
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()
print(f'{integerPart}.{decimalPart} avrundet til {amountOfDecimals} desimaler blir {roundedNumber}')

View File

@ -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)

View File

@ -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

View File

@ -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'
)
)

4
Exercise 1/README.md Normal file
View File

@ -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.