打印问候语+输入名称的Python程序,特殊情况 - 嵌套条件

时间:2016-10-10 19:26:19

标签: python string if-statement input raw-input

在此计划中,我必须询问用户What is your name?,然后打印出个性化的问候语进行回复。

通常,对于名为NAME的人,请通过打印Hello NAME进行回复。 例如。对于名为Maria的人,请通过打印Hello Maria

进行回复

然而,Amar和Brandy有一个特殊的规则。这两个名字应该收到独特的问候(和笑脸),例如:

  • 对于名为Amar的人,请回答说Hi Amar :)
  • 对于名为Brandy的人,请回复Ahoy Brandy :D

如果我的话,机器人评分员只会标记我的解决方案 print语句完全符合上面指定的内容。

以下是我在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 + """) 

此代码在第4行返回错误消息:

SyntaxError: invalid syntax (<string>, line 4)

如何改进此代码以便没有错误并且程序按预期运行?

编辑我修正了第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:名称'raw_input'未定义”

如何定义'raw_input'?我不是通过在对话框中输入名称来定义它吗? (没有显示对话框)

编辑2 据悉,raw_input与Python版本3不兼容 - 将Python编辑器转换为版本2.该代码现在适用于名称“Amar”和“Brandy”但不适用于任何其他名称 - 我们仍然得到“Hello +”而不是“Hello Steven”。知道为什么会这样吗?

编辑3 让程序按照我想要的方式运行的关键是使用嵌套条件 - 我需要在if语句中放置一个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,则根据其独特条件进行打印。

2 个答案:

答案 0 :(得分:2)

if "" = Amar:

尝试将名为Amar的变量(不存在)分配给空字符串(无意义)。

注意=分配运算符和==相等运算符。

您想检查Name是否等于&#34; Amar&#34;:

if Name == 'Amar':

答案 1 :(得分:0)

if "" = Amar:

首先,在检查相等性时,请使用==代替=

其次,为什么要检查空白字符串""?请改用Name

第三,比较值必须使用引号:"Amar"而不是Amar