0

解决学校的运输编程问题,刚从 python 2.7.5 开始,试图让美国或加拿大成为一个选择,就目前而言,我必须做出一个数字选择才能让它工作,我试图选择提示为美国或加拿大并且没有分配数字,我是否必须将某些内容声明为字符串?如果我使用加拿大或美国,它会给我一条关于全局变量的错误消息。带有数字选择的草稿:

def main ():
    user_ship_area = input('Are you shipping to the US or Canada? Type 1 for US, 2 for   Canada') 

    if user_ship_area != 2:
      print 'confirmed, we will ship to the United States '
    else:
      print "confirmed, we will ship to Canada" 

main() 

当我在 if 下使用加拿大或美国时,我收到一条错误消息

user_ship_area = 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" 
4

3 回答 3

2

使用raw_input代替input

def main ():
    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" 

main() 
于 2013-10-10T14:49:18.953 回答
1

在您的代码中,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" 
于 2013-10-10T14:49:43.220 回答
0

你错过了一个'标记

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!'
于 2013-10-10T14:49:06.977 回答