Python 打印问候语 + 输入名称的程序,特殊情况 - 嵌套条件
Python Program that Prints Greeting + Entered Name, Special Cases - Nested Conditionals
在这个程序中,我必须询问用户 What is your name?
,然后通过打印出个性化的问候语来回应。
一般来说,对于名为 NAME
的人,通过打印 Hello NAME
进行响应。
例如。对于名为 Maria
的人,通过打印 Hello Maria
进行响应
但是,Amar 和 Brandy 有一条特殊规则。这两个名字应该收到独特的问候语(和笑脸),例如:
- 对于名叫 Amar 的人,请回复说
Hi Amar :)
- 对于一个叫 Brandy 的人,回复说
Ahoy Brandy :D
如果我的解决方案正确,机器人评分器只会将我的解决方案标记为正确
打印语句与上面指定的完全匹配。
这是我在 Live Python Editor
中尝试过的
Name = ""
# Prompt user for user-defined information
Name = raw_input('What is your Name? ')
if "" = Amar:
print ("Hi Amar :)")
if "" = Brandy:
print ("Ahoy Brandy :D")
else:
print ("Hello + """)
此代码在第四行返回错误消息:
SyntaxError: invalid syntax (<string>, line 4)
我如何改进此代码,以便没有错误并且程序 运行 符合预期?
EDIT 我修复了第 4 行和第 6 行的错误,所以现在我的代码如下所示:
Name = ""
# Prompt user for user-defined information
Name = raw_input('What is your Name? ')
if Name == 'Amar':
print ("Hi Amar :)")
if Name == 'Brandy':
print ("Ahoy Brandy :D")
else:
print ("Hello + """)
但我仍然收到一条错误消息:
"NameError: name 'raw_input' is not defined"
如何定义'raw_input'?我不是通过在对话框中输入名称来定义它吗? (没有出现对话框)
EDIT 2 了解到 raw_input 与 Python 的版本 3 不兼容 - 将 Python 编辑器切换到版本 2。代码现在适用于名称 "Amar" 和 "Brandy" 但不适用于任何其他名称 - 我们仍然得到 "Hello + " 而不是 "Hello Steven"。知道为什么会这样吗?
编辑 3 让程序达到我想要的 运行 的关键是使用嵌套条件 - 我需要在if 语句以确保满足这两个条件。
name = input('What is your name? ')
if name != 'Amar':
if name != 'Brandy':
print("Hello " + name)
if name == 'Amar':
print("Hi Amar :)")
if name == 'Brandy':
print("Ahoy Brandy :D")
这表示如果输入的名称不是 Amar 或 Brandy,则打印 "Hello" + 名称。但是,如果输入的名称是 Amar 或 Brandy,则根据其独特条件进行打印。
if "" = Amar:
尝试将名为 Amar
的变量(不存在)分配给空字符串(无意义)。
注意 =
赋值运算符和 ==
相等运算符。
您想检查 Name
是否等于 "Amar":
if Name == 'Amar':
if "" = Amar:
首先,检查相等性时,使用==
而不是=
。
其次,为什么要检查空字符串 ""
?请改用 Name
。
第三,比较值本身必须用引号引起来:"Amar"
而不是 Amar
.
在这个程序中,我必须询问用户 What is your name?
,然后通过打印出个性化的问候语来回应。
一般来说,对于名为 NAME
的人,通过打印 Hello NAME
进行响应。
例如。对于名为 Maria
的人,通过打印 Hello Maria
但是,Amar 和 Brandy 有一条特殊规则。这两个名字应该收到独特的问候语(和笑脸),例如:
- 对于名叫 Amar 的人,请回复说
Hi Amar :)
- 对于一个叫 Brandy 的人,回复说
Ahoy Brandy :D
如果我的解决方案正确,机器人评分器只会将我的解决方案标记为正确 打印语句与上面指定的完全匹配。
这是我在 Live Python Editor
中尝试过的Name = ""
# Prompt user for user-defined information
Name = raw_input('What is your Name? ')
if "" = Amar:
print ("Hi Amar :)")
if "" = Brandy:
print ("Ahoy Brandy :D")
else:
print ("Hello + """)
此代码在第四行返回错误消息:
SyntaxError: invalid syntax (<string>, line 4)
我如何改进此代码,以便没有错误并且程序 运行 符合预期?
EDIT 我修复了第 4 行和第 6 行的错误,所以现在我的代码如下所示:
Name = ""
# Prompt user for user-defined information
Name = raw_input('What is your Name? ')
if Name == 'Amar':
print ("Hi Amar :)")
if Name == 'Brandy':
print ("Ahoy Brandy :D")
else:
print ("Hello + """)
但我仍然收到一条错误消息:
"NameError: name 'raw_input' is not defined"
如何定义'raw_input'?我不是通过在对话框中输入名称来定义它吗? (没有出现对话框)
EDIT 2 了解到 raw_input 与 Python 的版本 3 不兼容 - 将 Python 编辑器切换到版本 2。代码现在适用于名称 "Amar" 和 "Brandy" 但不适用于任何其他名称 - 我们仍然得到 "Hello + " 而不是 "Hello Steven"。知道为什么会这样吗?
编辑 3 让程序达到我想要的 运行 的关键是使用嵌套条件 - 我需要在if 语句以确保满足这两个条件。
name = input('What is your name? ')
if name != 'Amar':
if name != 'Brandy':
print("Hello " + name)
if name == 'Amar':
print("Hi Amar :)")
if name == 'Brandy':
print("Ahoy Brandy :D")
这表示如果输入的名称不是 Amar 或 Brandy,则打印 "Hello" + 名称。但是,如果输入的名称是 Amar 或 Brandy,则根据其独特条件进行打印。
if "" = Amar:
尝试将名为 Amar
的变量(不存在)分配给空字符串(无意义)。
注意 =
赋值运算符和 ==
相等运算符。
您想检查 Name
是否等于 "Amar":
if Name == 'Amar':
if "" = Amar:
首先,检查相等性时,使用==
而不是=
。
其次,为什么要检查空字符串 ""
?请改用 Name
。
第三,比较值本身必须用引号引起来:"Amar"
而不是 Amar
.