Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.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 如何退出循环并使用return键继续脚本而不获取ValueError:int()的文本无效,以10为基数:'';_Python - Fatal编程技术网

Python 如何退出循环并使用return键继续脚本而不获取ValueError:int()的文本无效,以10为基数:'';

Python 如何退出循环并使用return键继续脚本而不获取ValueError:int()的文本无效,以10为基数:'';,python,Python,我是python新手,需要一些任务方面的帮助 我的剧本是这样的: print "Enter age of individuals (male only!) in order of entered names..." age = " " ages = [] while age <> "": age = raw_input("Enter a age or press enter: ") if int(age) <= 65 a

我是python新手,需要一些任务方面的帮助

我的剧本是这样的:

print "Enter age of individuals (male only!) in order of entered names..."

    age = " "
    ages = []
    while age <> "":
        age = raw_input("Enter a age or press enter: ")
        if int(age) <= 65 and int(age) >= 18:
            print "entry accepted"      
        else:
            print "entry denied: out of age range. Ages 18-65 only!"
        if int(age) < 65 and int(age) > 18:
            ages.append(age)

    ages.remove('')

如何修复此问题?

您的方法可以抛出一个
ValueError
,并且除了它之外,您没有
,因此您希望挽救
ValueError

print "Enter age of individuals (male only!) in order of entered names..."
age = " "
ages = []
while age != "":
    age = raw_input("Enter a age or press enter: ")
    try:
        if int(age) <= 65 and int(age) >= 18:
            print "entry accepted"      
        else:
            print "entry denied: out of age range. Ages 18-65 only!"
    except ValueError:
        print "You must enter an integer"
        continue

    if int(age) < 65 and int(age) > 18:
        ages.append(age)

ages.remove('')
print“按输入姓名的顺序输入个人年龄(仅限男性!)”
年龄=“”
年龄=[]
趁着年龄!="":
年龄=原始输入(“输入年龄或按Enter:”)
尝试:
如果int(年龄)=18:
打印“已接受输入”
其他:
打印“拒绝输入:超出年龄范围。仅限18-65岁!”
除值错误外:
打印“您必须输入一个整数”
持续
如果int(年龄)<65且int(年龄)>18:
ages.append(年龄)
删除(“”)
移动此行

age = raw_input("Enter a age or press enter: ")
在它上面的while循环之外


然后读取while循环末尾的同一行。问题是,在输入之后,您要测试年龄。如果用户未输入任何内容(按enter键),它会抱怨用户输入的不是数字。因此,在检查年龄之前,您需要添加一个检测是否按下enter键的零件

print "Enter age of individuals (male only!) in order of entered names..."

age = " "
ages = []
while True:
    age = raw_input("Enter a age or press enter: ")
    if age == '':
        break
    if int(age) <= 65 and int(age) >= 18:
        print "entry accepted"      
    else:
        print "entry denied: out of age range. Ages 18-65 only!"
    if int(age) < 65 and int(age) > 18:
        ages.append(age)

ages.remove('')
print“按输入姓名的顺序输入个人年龄(仅限男性!)”
年龄=“”
年龄=[]
尽管如此:
年龄=原始输入(“输入年龄或按Enter:”)
如果年龄=“”:
打破
如果int(年龄)=18:
打印“已接受输入”
其他:
打印“拒绝输入:超出年龄范围。仅限18-65岁!”
如果int(年龄)<65且int(年龄)>18:
ages.append(年龄)
删除(“”)

Test
age
在尝试将空字符串转换为int之前测试它。如果它是空字符串,请中断循环或跳过age测试。您在哪里看到
?不要使用for not equal to。根据文档,“是一种过时的用法,仅用于向后兼容。新代码应始终使用!=”。正确。在python3中它已经不存在了。谢谢你的帮助!!它将打印
您必须输入一个整数才能跳出循环。它只打印
如果存在
值错误
@EliSadoff>则必须输入一个整数
int(“”
引发一个
ValueError
。因此,它将打印
,您必须在跳出循环之前输入一个整数。
print "Enter age of individuals (male only!) in order of entered names..."

age = " "
ages = []
while True:
    age = raw_input("Enter a age or press enter: ")
    if age == '':
        break
    if int(age) <= 65 and int(age) >= 18:
        print "entry accepted"      
    else:
        print "entry denied: out of age range. Ages 18-65 only!"
    if int(age) < 65 and int(age) > 18:
        ages.append(age)

ages.remove('')