【问题标题】:Why comparison won't work properly when one of the value is 1000?当其中一个值为 1000 时,为什么比较不能正常工作?
【发布时间】:2020-11-19 19:51:35
【问题描述】:

当插入输入 b1 为 300,b2 为 1000 为什么这段代码的输出显示“b1>b2”

虽然 b2 是任何小于 1000 的数字,但会给出正确的输出“b2>b1”

不使用输入函数给b1&b2赋值不会导致这个问题

b1 = input("Enter balance 1: ")
b2 = input("Enter balance 2: ")

list = [739,324,45]



def calculate_balance():
    if b1>b2:
        bl = int(b1)
        bs = int(b2)
        print("b1>b2")
    elif b1==b2:
        bl = int(b1)
        bs = int(b2)
        print("b1=b2")
    else:
        bl = int(b2)
        bs = int(b1)
        print("b2>b1")

calculate_balance()

【问题讨论】:

  • 在进行比较之前,您需要转换为整数。
  • 您正在比较值之前将它们转换为ints。只需执行b1 = int(input("Enter balance 1:")) 等,以便它们从一开始就是int
  • input() 返回字符串值,因此 b1b2 是字符串,因此您的比较使用 alphabetic 排序而不是 numeric 订购。

标签: python for-loop comparison-operators


【解决方案1】:

当您在代码中为b1b2 赋值时,您将分配一个整数。使用input输入值时,值是字符串。

在比较之前需要转换为整数。

b1 = int(input("Enter balance 1: "))

if int(b1)>int(b2):

【讨论】:

    【解决方案2】:

    @Pranab 是对的,当它是整数时,您需要进行比较。如果您不这样做,它将按字母计算(我认为它会像那样工作)! 玩家可以在屏幕上输入Hello!,所以请使用int(input()),它会完美运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-05
      • 2022-01-23
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 2019-01-04
      • 2020-09-03
      相关资源
      最近更新 更多