Python如何将字符串变为选择?

10 浏览
0 Comments

Python如何将字符串变为选择?

正在为学校解决一个航运编程问题,刚开始使用Python 2.7.5,尝试将美国或加拿大作为选项,目前我必须选择一个数字才能使其运行,我想让提示的选择为美国或加拿大,而不是分配一个数字,我需要声明某个内容为字符串吗?如果我使用Canada或US,它会给我一个关于全局变量的错误消息。

带有数字选择的草稿:

def main():
    user_ship_area = input('您要发货到美国还是加拿大?输入1表示美国,输入2表示加拿大')
    if user_ship_area != 2:
        print('确认,我们将发货到美国')
    else:
        print('确认,我们将发货到加拿大')
main()

当我在if条件中使用Canada或US时,出现错误消息。

user_ship_area = input('您要发货到美国还是加拿大?')
if user_ship_area != '加拿大':
    print('确认,我们将发货到美国')
else:
    print('确认,我们将发货到加拿大')

0
0 Comments

Python中的字符串可以使用单引号或双引号来表示。然而,在给变量赋值时,如果字符串中包含引号,则需要确保引号的配对是正确的。如果引号未正确配对,将会导致语法错误。

在上述代码中,原因是在输入函数的参数中,缺少一个单引号。这导致代码在执行时无法识别字符串的结束位置,进而引发了语法错误。

为了解决这个问题,我们需要在代码中添加缺少的单引号。根据给定的代码,我们可以在`Are you shipping to the US or Canada?`后面添加一个单引号。修正后的代码如下所示:

user_ship_area = input('Are you shipping to the US or Canada?') #<--- here 
  #<--an indent here.  v      v  quotes to indicate string here  
  if user_ship_area != 'Canada':
    print 'You picked Canada!'

经过修改后,代码将能够正常运行,不再出现语法错误。

0
0 Comments

Python中的input函数会将用户输入的内容作为代码进行解析和执行,如果用户输入的是一个字符串,会将其当做变量名或函数名进行解析,容易引发安全问题。为了避免这个问题,可以使用raw_input函数来获取用户的输入,将其作为字符串处理,不进行解析和执行。

在上面的代码中,使用了raw_input函数来获取用户的输入。根据用户输入的内容,判断是否为'Canada',如果是则打印"confirmed, we will ship to Canada",否则打印"confirmed, we will ship to the United States"。

通过使用raw_input函数,可以确保用户输入的内容被当做字符串进行处理,避免了安全问题。

0
0 Comments

问题的原因是在代码中,变量 Canada 被解析为变量,但它应该是一个字符串。另外,如果你在使用 Python 2.x,应该使用 raw_input 而不是 input,因为后者将对输入的字符串进行评估。所以,你的代码应该如下所示:

user_ship_area = raw_input('Are you shipping to the US or Canada?') 
if user_ship_area != 'Canada':
    print 'confirmed, we will ship to the United States '
else:
    print "confirmed, we will ship to Canada" 

解决方法是将变量 Canada 改为字符串,同时使用 raw_input 来获取用户的输入。这样,无论用户输入的是什么,代码都可以正确地判断并输出相应的结果。

0