Python 使用标志时出现ValueError
这个问题的其他版本对我来说没有意义 ValueError:以10为基数的int()的文本无效:“退出”Python 使用标志时出现ValueError,python,python-3.x,Python,Python 3.x,这个问题的其他版本对我来说没有意义 ValueError:以10为基数的int()的文本无效:“退出” active = True while active: var = input() if var == 'quit': active = False if int(var) < y . . . active=True 激活时: var=input() 如果var==“退出”: 活动=错误 如果int(var)12岁:
active = True
while active:
var = input()
if var == 'quit':
active = False
if int(var) < y
.
.
.
active=True
激活时:
var=input()
如果var==“退出”:
活动=错误
如果int(var)
原始代码如下
active = True
prompt = ("Please state your age.")
while active:
age = input(prompt)
if int(age) < 3:
print("Free")
elif int(age) >= 3 and int(age) <= 12:
print("$10")
elif int(age) > 12:
print("$15")
elif str(age) == 'quit':
active = False
active=True
prompt=(“请说明您的年龄。”)
激活时:
年龄=输入(提示)
如果int(年龄)<3:
打印(“免费”)
elif int(年龄)>=3和int(年龄)12:
印刷品($15)
elif str(年龄)=“退出”:
活动=错误
之所以发生这种情况,是因为您试图从python不知道如何计算的字符串中生成一个int
也许您想在第二条语句中使用
else
。您需要首先检查用户输入的类型。你可以试试看。。抓住。。陈述如果用户输入不是整数或退出,则会显示一条消息
active = True
prompt = ("Please state your age.")
while active:
age = input(prompt)
if age == 'quit':
active = False
try:
val = int(age)
if val < 3:
print("Free")
elif val >= 3 and val <= 12:
print("$10")
else:
print("$15")
except ValueError:
print("Input string is not an Integer or 'quit'")
active=True
prompt=(“请说明您的年龄。”)
激活时:
年龄=输入(提示)
如果年龄==“退出”:
活动=错误
尝试:
val=int(年龄)
如果val<3:
打印(“免费”)
elif val>=3和val在调用int(age)
之前,必须先检查if str(age)='quit':
。将elif
移动到条件的顶部,使if int(age)<3
成为elif
在同一个字符串上调用int
是浪费,在其中调用str
是不必要的。您可以简单地使用break
,而不是使用标志:
while True:
age = input(prompt)
if str(age) == 'quit':
break
age = int(age)
if age < 3:
print("Free")
elif 12 >= age >= 3:
print("$10")
elif age > 12:
print("$15")
为True时:
年龄=输入(提示)
如果str(年龄)=“退出”:
打破
年龄=int(年龄)
如果年龄<3岁:
打印(“免费”)
elif 12>=年龄>=3岁:
印刷品($10)
elif年龄>12岁:
印刷品($15)
您正在使用int(var)
将字符串
转换为int
,如果input()
(始终键入字符串)不是数字类型,python将给您一个类型错误
您可以使用检查input()
是否为数字类型,即。
:
str.isdigit()
如果字符串中的所有字符都是数字且至少有个字符,则返回true
至少一个字符,false
否则。数字包括小数
需要特殊处理的字符和数字,例如
兼容上标数字。这涵盖了不能使用的数字
用于在基数10中形成数字,类似于Kharosthi数字。正式地
数字是具有属性值Numeric\u Type=digit
或数字类型=十进制
注:
- 蟒蛇的
你想做什么?什么是var?看起来你想把“退出”转换成整数。@LalaLa我忘了一行。Var应该是用户输入。如果用户输入“退出”,则while循环停止。int(var)
arg = input("Type your age\n")
if arg.isdigit():
# input is numeric, do something with it
arg = int(arg)
else:
# input cannot be casted to an integer or decimal
exit(0)