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, 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) print('Antall cookies:', cookieNumber)
cookies.getIngredients(cookieNumber) cookies.getIngredients(cookieNumber)

View File

@ -35,32 +35,24 @@ def myRoundFunction(integerPart,decimalPart,amountOfDecimals):
else: else:
return addPointAtOffset(int(numberString[:roundOffset]) + 1, decimalOffset) return addPointAtOffset(int(numberString[:roundOffset]) + 1, decimalOffset)
def main(): integerPart = inputTypeCheck(
integerPart = inputTypeCheck( message='Oppgi heltallsdelen av tallet (det foran punktum): ',
message='Oppgi heltallsdelen av tallet (det foran punktum): ', type=int,
type=int, errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n'
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): ', message='Oppgi desimaldelen av tallet (det bak punktum): ',
type=int, type=int,
errorMessage='Beklager, dette er ikke et tall, eller inneholder et desimalpunkt. Prøv igjen\n' 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: ', message='Oppgi ønsket antall desimaler i avrunding: ',
type=int, type=int,
errorMessage='Beklager, det du skrev inn er ikke et heltall. Prøv igjen\n' 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}') 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()

View File

@ -6,12 +6,12 @@ substance = input('Si et stoff du er i besittelse av: ')
weight = inputTypeCheck( weight = inputTypeCheck(
message='Hva er molvekt i gram for vann? ', message='Hva er molvekt i gram for vann? ',
type=float, 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( amount = inputTypeCheck(
message='Hvor mange gram vann har du? ', message='Hvor mange gram vann har du? ',
type=float, 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) numberOfMolecules = (amount * AVOGADROS_CONSTANT / weight)

View File

@ -2,7 +2,11 @@ from common import inputTypeCheck
AMOUNT_OF_POSSIBLE_MELODIES = 8.25e19 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 percentMelodiesHeard = melodiesHeard / AMOUNT_OF_POSSIBLE_MELODIES * 100

View File

@ -1,12 +1,5 @@
from math import sqrt from math import sqrt
from common import inputTypeCheck
def inputTypeCheck(message, type, errorMessage):
while True:
inputValue = input(message)
try:
return type(inputValue)
except ValueError:
print(errorMessage)
class Tetraeder: class Tetraeder:
def __init__(self, length): def __init__(self, length):
@ -24,8 +17,8 @@ print()
figure2 = Tetraeder( figure2 = Tetraeder(
inputTypeCheck( inputTypeCheck(
message='Skriv inn en høyde: ', message='Skriv inn en høyde: ',
type=int, 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'
) )
) )

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.