试图让一个年龄计算器,而是试图让错误“行”
我觉得标题说明了一切,但我给你的代码时,我有一些问题。试图让一个年龄计算器,而是试图让错误“行”
stop=0
while stop != 'q':
print("Age calculator")
name = input("Name: ")
print("Type in your age")
age = input("Age: ")
months = age * 12
days = age * 365
weeks = age * 52
hours = days * 24
minutes = age * 525948
seconds = age * 31556926
if type(age) == int:
print (name, "lives for", months, "months", weeks, "weeks", days, "days", hours, "hours", minutes, "minutes and", seconds, "seconds")
else:
print("Please type in a number")
print()
print("Try again? Press ENTER")
print("Quit? Press 'q' and then ENTER")
print()
stop = input()
所以事情是,我希望它给你个月,周,日等 现在我知道如何做到这一点,但现在我想做一个行会说:请输入在一个数字。如果用户输入字符而不是数字。当我每次输入一个数字时,上面运行这段代码时,它会给我一行“请输入一个数字”,并且当我输入一个字符时,它会执行相同的操作。
我在做什么错在这里?
输入()语句后接受所有类型的输入为字符串,所以即使你输入一个整数这将是一个字符串,如“1”,所以你需要强制转换给定的输入()为INT()两种类型的投它单独或如果你直接在输入(强制转换)语句,然后它会创建异常类型的错误,所以你可以使用尝试捕捉奥拓重复程序。所以如果你使用try catch,那么代码将会是。
status=""
try:
while True:
print("Age calculator")
name = input("Name: ")
print("Type in your age")
age = input("Age: ")
age=int(age)
months = age * 12
days = age * 365
weeks = age * 52
hours = days * 24
minutes = age * 525948
seconds = age * 31556926
print (name, "lives for", months, "months", weeks, "weeks", days, "days", hours, "hours", minutes, "minutes and", seconds, "seconds")
print("Try again? Press ENTER")
status = input("Quit? Press 'q' and then ENTER")
if status = "q":
break # terminates program if "q" is entered.
except TypeError:
print("Please type in a number for age")
continue #runs program till "q"is passed as age.
except:
raise # this raises error if something goes wrong
感谢您的帮助! – Dylan
当您在输入读取它总是读取为字符串。你需要投你的输入为int喜欢
int(input("Age: "))
需要注意的是,如果用户输入一个字母而不是数字,要解决这个问题,而无需更改代码太多,你可以让你的输入语句,因为这将打破他们是否将您的if语句更改为以下内容。
try:
age = int(age)
print statement
except ValueError:
print("Please type in a number")
要记住的另一个重要的事情是,在你的代码中有作用于时代运营商之前,它被分配给一个int,这意味着
age * 12
实际上给你一个STR(“555555555555 '如果年龄通过了5)而不是一个数字。为了解决这个问题,你应该陈述移入尝试让他们被称为数转换为整数
感谢您的帮助! – Dylan
'months','days'等分配了哪些值? –
你是什么意思?我很抱歉,我刚刚开始使用Python。 – Dylan
'输入()'返回字符串,而不管该输入是否是数字或字符集。这就是为什么你的'if type(age)== int'失败。 –