python if elif else 语句
python if elif else 语句
我正在尝试使用Python创建一个计算运费的程序。\n然而,我无法正确运行该程序。\n无论我的总金额是多少,美国的运费都是6美元,加拿大的运费都是8美元。我似乎无法超越这一点。\n
total = raw_input('请输入您在线购物的总金额:') country = raw_input('运送到美国还是加拿大?') if country == "美国": if total <= "50": print "运费为$6.00" elif total <= "100": print "运费为$9.00" elif total <= "150": print "运费为$12.00" else: print "免费" if country == "加拿大": if total <= "50": print "运费为$8.00" elif total <= "100": print "运费为$12.00" elif total <= "150": print "运费为$15.00" else: print "免费"
在Python中,如果我们比较字符串,它会按照字典顺序进行比较,就像电话簿中的排序一样。例如:
"a" < "b"
:True
"bill" < "bob"
:True
"100" < "3"
:True
但是,如果我们想按照我们数数的顺序来比较数字,我们需要使用int类型。例如:
total = int(raw_input('What is the total amount for your online shopping?'))
然后,我们需要将代码中的所有字符串字面值(如"50"
)更改为整数字面值(如50
)。
这个问题的原因是因为在比较字符串时,Python会将它们视为字符的字典顺序,而不是按照我们数数的顺序进行比较。解决方法是通过使用int类型将字符串转换为整数,以便按照我们数数的顺序进行比较。
在上述代码中,出现了几个问题导致代码无法正确运行。首先,在接收用户输入的金额时,使用了raw_input函数,而它返回的是一个字符串而不是整数。因此,需要使用int()函数将字符串转换为整数。其次,比较的值如50、100、150等也应该是整数,而不是字符串。因此,需要将这些字符串转换为整数。
以下是修复后的代码:
total = int(raw_input('What is the total amount for your online shopping?')) country = raw_input('Shipping within the US or Canada?') if country == "US": if total <= 50: print "Shipping Costs $6.00" elif total <= 100: print "Shipping Costs $9.00" elif total <= 150: print "Shipping Costs $12.00" else: print "FREE" if country == "Canada": if total <= 50: print "Shipping Costs $8.00" elif total <= 100: print "Shipping Costs $12.00" elif total <= 150: print "Shipping Costs $15.00" else: print "FREE"
修复的方法是使用int()函数将用户输入的字符串转换为整数,以及将比较的值由字符串改为整数。这样,代码就能够正确运行,并根据用户输入的金额和国家输出相应的运费信息。
总结起来,这个问题出现的原因是将字符串作为整数进行比较,导致无法正确判断条件。解决方法是使用int()函数将字符串转换为整数。通过这样的修复,代码能够正常运行并输出正确的结果。感谢阅读!