Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用标志时出现ValueError_Python_Python 3.x - Fatal编程技术网

Python 使用标志时出现ValueError

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岁:

这个问题的其他版本对我来说没有意义

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)
原始代码如下

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)