Python 一个程序中的名称错误,而另一个程序中的语法错误
因此,首先,我需要创建一个程序,用户在其中输入一个字符,如果该字符为Int,则会弹出一个错误。。。如果是Str,那么它应该进一步分为辅音和元音。然而,这并不能解决这个问题(而且它不起作用),因为用户可以输入特殊字符,而这些字符只会作为辅音过滤掉Python 一个程序中的名称错误,而另一个程序中的语法错误,python,python-3.x,list,python-2.7,Python,Python 3.x,List,Python 2.7,因此,首先,我需要创建一个程序,用户在其中输入一个字符,如果该字符为Int,则会弹出一个错误。。。如果是Str,那么它应该进一步分为辅音和元音。然而,这并不能解决这个问题(而且它不起作用),因为用户可以输入特殊字符,而这些字符只会作为辅音过滤掉 Z = (input("Enter a character: ")) if type(Z) == int: print(Z, "is a numeral") else: if (Z=='A' or Z
Z = (input("Enter a character: "))
if type(Z) == int:
print(Z, "is a numeral")
else:
if (Z=='A' or Z=='a' or Z =='E' or Z=='e' or Z=='I'or Z=='i'
or Z=='O' or Z=='o' or Z=='U' or Z=='u'):
print(Z, "is a Vowel")
else:
print(Z, "is a Consonant")
所以,在这之后,我尝试创建一个包含所有字母的列表,然后我认为它会起作用。。。我错了
my=input('Enter a character:')
list=[a,A,b,B,c,C,d,D,e,E,f,F,g,G,h,H,i,I,j,J,k,K,l,L,m,M,n,N,o,O,p,P,q,Q,r,R,s,S,t,T,u,U,v,V,w,W,x,X,y,Y,z,Z]
if my in list:
if (my=='A' or my=='a' or my=='E' or my=='e' or my=='I'or my=='i'
or my=='O' or my=='o' or my=='U' or my=='u'):
print(my, "is a Vowel")
else:
print(my, "is a Consonant")
else:
print ('HAHAHA')
这显示了这个错误
Traceback (most recent call last):
File "C:\Users\veert\Desktop\Python\VowelOrConsonant#1.py", line 2, in <module>
list=[a,A,b,B,c,C,d,D,e,E,f,F,g,G,h,H,i,I,j,J,k,K,l,L,m,M,n,N,o,O,p,P,q,Q,r,R,s,S,t,T,u,U,v,V,w,W,x,X,y,Y,z,Z]
NameError: name 'a' is not defined
回溯(最近一次呼叫最后一次):
文件“C:\Users\veert\Desktop\Python\元音辅音#1.py”,第2行,在
列表=[a,a,b,b,c,c,d,d,e,e,f,f,g,g,h,h,i,i,j,j,k,k,l,l,m,m,n,n,o,o,p,p,q,q,r,r,s,t,t,u,u,v,w,w,x,x,y,y,z]
NameError:未定义名称“a”
请帮帮我,伙计们上面的列表值应该是String类型。因此,您需要添加“”中的每个字符,如下所示
my=input('Enter a character:')
list=["a","A","b","B","c","C","d","D","e","E"]
if my in list:
if (my=='A' or my=='a' or my=='E' or my=='e' or my=='I'or my=='i'
or my=='O' or my=='o' or my=='U' or my=='u'):
print(my, "is a Vowel")
else:
print(my, "is a Consonant")
else:
print ('HAHAHA')
当您添加list=[a,a,b,b,…]时,Python解释器会尝试搜索变量a,a,b,b等的值。在这里它不是预定义的。所以,它返回那个名称错误。可能是这样的吗
vowels = ['A','a','E','e','I','i','O','o','U','u'],
consonants = ['B','b','C','c','D','d','H','h','J','j','K','k','L','l','M','m','N','n','P','p','Q','q','R','r','S','s','T','t','V','v','W','w','X','x','Y','y','Z','z']
inp = input('Please enter a character > ')
if inp not in vowels and inp not in consonants:
print(f'{inp} is not in the alphabet')
if inp in vowels:
print(f'{inp} is a vowel')
if inp in consonants:
print(f'{inp} is a consonant')
为了便于阅读,我将元音和辅音分开,试图将比较运算符缩短到只有几个
满足所有输入:
alphaneumeric = {
'vowel': ['A','a','E','e','I','i','O','o','U','u'],
'consonant': ['B','b','C','c','D','d','H','h','J','j','K','k','L','l','M','m','N','n','P','p','Q','q','R','r','S','s','T','t','V','v','W','w','X','x','Y','y','Z','z'],
'number': ['1','2','3','4','5','6','7','8','9','0'],
'symbol': ['!','@','#','$','%','^','&','*','(',')','[',']','{','}','<','>','.',',','\'','"',':',';','-','=','/','\\','~','`']
}
inp = input('Please enter a chacter > ')
for key, lst in alphaneumeric.items():
if inp in lst:
print(f'{inp} is a {key}')
break # return immediately
alphaneumeric={
‘元音’:[‘A’、‘A’、‘E’、‘E’、‘I’、‘I’、‘O’、‘O’、‘U’、‘U’],
‘辅音’:[‘B’、‘B’、‘C’、‘D’、‘D’、‘H’、‘H’、‘J’、‘K’、‘K’、‘L’、‘L’、‘M’、‘M’、‘N’、‘P’、‘Q’、‘R’、‘S’、‘S’、‘T’、‘V’、‘W’、‘W’、‘X’、‘X’、‘Y’、‘Z’、],
‘数字’:[‘1’、‘2’、‘3’、‘4’、‘5’、‘6’、‘7’、‘8’、‘9’、‘0’],
‘符号’:['!'、'@'、'#'、'$'、'%'、'^'、'&'、'*'、'('、')、'['、']'、'{'、'}'、'、'、'、'、':'、'、'、'、'、'、'、'、'、'='、'/'、'\'、'、'、'、'、'、'、'、'、'、'、'、'’
}
inp=input('请输入字符>')
对于键,字母NEUMERIC.items()中的lst:
如果inp在lst中:
print(f'{inp}是一个{key}')
中断#立即返回
请将每个字符添加到“否则,python解释器将尝试搜索a、a、b、b等变量。。。。这就是为什么会出现名字错误谢谢你。。。我是python新手,所以我完全忘记了这一点。。。非常感谢,没有问题:)我们应该通过在找到元素时立即输出来改善这一点。而不是将列表遍历到底,即使在找到元素之后也是如此。如果在循环期间打印(key),您将看到找到了元素,但在找到打印(f'{inp}是{key}')之后,循环将继续。实现这一点的一个简单方法是在比较运算符后添加“break”,它检查“if inp in lst”。提示:import string
和str.lower
@tobias_k sound advice先生,OP必须明确查看string模块。