Python 如果int(x)==int(q):name错误:未定义名称“q”

Python 如果int(x)==int(q):name错误:未定义名称“q”,python,Python,试图完成我的学校项目。这是我的密码: # -*- coding: UTF8 -*- import math def summary(lista): print("min: ", min(lista)) print("max: ", max(lista)) print("average: ", float(sum(lista)) / int(len(lista))) lista=[ ] while (True): x

试图完成我的学校项目。这是我的密码:

# -*- coding: UTF8 -*-
 import math

 def summary(lista):
     print("min: ", min(lista))
     print("max: ", max(lista)) 
     print("average: ", float(sum(lista)) / int(len(lista)))    

 lista=[ ]     
 while (True):     
     x=int(input("Enter number: "))    
     if int(x)==int(q):
         lista.append(x)
         print("Numbers on list:")
         print(lista)
     else:
         break

 print(summary(lista))
如你所见,我试图:

输入要列出的数字 结束输入过程,按q键 最后显示数字的最小值、最大值和平均值 lista=列表,英语

NameError:未定义名称“q”

有关于这个错误的提示吗

谢谢

q as is指的是您尚未定义的变量 你的逻辑是错误的。输入过程应在键入“q”时结束;当前您的程序以错误的方式处理的。您可以这样做:

if x != 'q': # if the input is anything other than 'q'
    try:
        lista.append(int(x)) # convert to an 'int' & append
    except ValueError:
        continue # invalid input, start over
    print("Numbers on list:")
    print(lista)
else: # break if x == 'q'
    break

由于python解释无法解释q的定义,您只需对代码进行以下更改

while (True):
    q="q"
    x=(input("Enter number: "))    
    if x!=q:
        lista.append(int(x))
    else:
        break
print("Numbers on list:")
print(lista)

好吧,您想检查intx==intq,但您从未告诉Python q应该是什么。错误信息非常清楚。在检查x==q之前,您不能将x转换为int。有些不相关的注释,您不需要导入数学,因为min和max都是内置的。如果x!='q'?