嗨,我是一名学生,也是真正的 python 初学者。我的任务是编写一个程序来打印您的输入血型。我的代码是
x=input("Enter your blood type: ")
if x == O:
for y in range(6):
print("O O O O O O")
elif x == A:
for y in range(6):
print("A A A A A A")
elif x == B:
for y in range(6):
print("B B B B B B")
elif x == AB:
for y in range(3):
print("AB AB AB")
else:
print("N/A blood type! Are you alien?")
喜欢这个。每当我编译它说
Traceback (most recent call last):
File "C:UsersmuziekDesktopq1.py", line 2, in <module>
if x == O:
NameError: name 'O' is not defined
请帮忙?
对于 Python 中的字符串,它需要用引号括起来。现在Python认为O
等都是变量。固定:
x = input("Enter your blood type: ")
if x == 'O':
for y in range(6):
print("O O O O O O")
elif x == 'A':
for y in range(6):
print("A A A A A A")
elif x == 'B':
for y in range(6):
print("B B B B B B")
elif x == 'AB':
for y in range(3):
print("AB AB AB")
else:
print("N/A blood type! Are you alien?")
在代码中,您尝试将变量x
与任意数量的其他变量进行比较,O
、A
、AB
、B
。最后四个都没有定义,所以你总是会得到一个NameError
。
你可能的意思是x == 'O':
,等等。
首先,你应该使用 raw_input
而不是 input
。
您需要通过将O
放在引号中来使其成为字符串。
进行以下更改:
x = raw_input("Enter your blood type: ")
if x == "O":
for y in range(6):
print("O O O O O O")
elif x == "A":
for y in range(6):
print("A A A A A A")
elif x == "B":
for y in range(6):
print("B B B B B B")
elif x == "AB":
for y in range(3):
print("AB AB AB")
else:
print("N/A blood type! Are you alien?")