python if elif else 语句

10 浏览
0 Comments

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 "免费"

0
0 Comments

在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类型将字符串转换为整数,以便按照我们数数的顺序进行比较。

0
0 Comments

问题的原因是因为在Python中,不能直接对字符串进行数值比较。解决方法是先将字符串转换为整数,然后再进行比较。例如,可以使用int(total) < 50来进行比较。

另外,为了避免重复,可以使用变量来存储转换后的数值。

有人认为使用int("5")来表示5有点啰嗦。但是在实际代码中,total是一个变量,所以需要使用int(total)来进行转换。他们认为应该使用if int(total) < 50来增加代码的清晰度。

还有人认为更合理的做法是将total转换为整数(或者是浮点数)一次,而不是在每次比较时都进行转换。

他们都赞同这个观点,因此提出了使用变量来避免重复的建议。

0
0 Comments

在上述代码中,出现了几个问题导致代码无法正确运行。首先,在接收用户输入的金额时,使用了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()函数将字符串转换为整数。通过这样的修复,代码能够正常运行并输出正确的结果。感谢阅读!

0