错误:NameError:名称“ Caitlin”未定义

时间:2020-05-26 23:17:05

标签: python

能否请您告诉我为什么会出现此错误?输入输入时,我期望输入一个字符串,但出现以下错误,

File "ifelif.py", line 1, in <module> first_name = input("What is your first name? ") File "<string>", line 1, in <module> NameError: name 'Caitlin' is not defined

我正在使用以下代码:

first_name = input("What is your first name? ") 
print("Hello,", first_name) 
if first_name == "Caitlin": 
 print(first_name, "is learning Python") 
 print("Have a great day {}!".format(first_name))

当我在终端中输入名称并用引号引起一个字符串时,它可以工作,但我得到2个字符串而不是1个字符串:

('Hello,', 'Ed')

文件名是“ ifelif.py”

非常感谢!

2 个答案:

答案 0 :(得分:0)

如果您使用的是Python2,则应该使用raw_input。在Python2中,input会评估您键入的内容,这就是您得到该错误的原因。

答案 1 :(得分:0)

测试了您的代码。我看起来很好。完全没有错误。它的行为符合我的预期,或者您的预期输出是什么?

first_name = input("What is your first name? ") 
print("Hello,", first_name) 
if first_name == "Caitlin": 
 print(first_name, "is learning Python") 
 print("Have a great day {}!".format(first_name))

第一个输入:男孩,输出为:

What is your first name? boy
Hello, boy

第二个输入:Caitlin,输出为:

What is your first name? Caitlin
Hello, Caitlin
Caitlin is learning Python
Have a great day Caitlin!

这可能只是代码编写样式/首选项,但我会这样做:

print(f"{first_name} is learning Python") 
print(f"Have a great day {first_name}!")

这叫做“ f字符串打印”,您将变量放在大括号中