python 2数字比较没有发生

时间:2017-08-15 18:02:57

标签: python comparison

为什么我将a与b进行比较时得不到准确的结果,其中b值是1到9之间的任何值?

 #!/usr/bin/python
 b=raw_input("Enter value of b:\n")
 a = 10
 if a>b:
  print("a is larger")
 else:
  print("b is larger")

4 个答案:

答案 0 :(得分:3)

raw_input命令返回一个字符串。在比较之前,您应该将'b'转换为整数。

 #!/usr/bin/python
b=raw_input("Enter value of b:\n")
b=int(b)
a = 10
if a>b:
   print("a is larger")
else:
   print("b is larger")

答案 1 :(得分:0)

这是因为raw_input将输入作为字符串。你需要的是

b =输入("输入b的值:\ n")

答案 2 :(得分:0)

您正在将字符串与整数进行比较。您需要使用raw_input投射int

a = 10
b = raw_input('Enter value of b:')
if (b.isdigit()):
    b = int(b)
    if a>b:
        print("a is larger")
    else:
        print("b is larger")
else:
    print("b is not a number that can be compared with a")

Python文档:https://docs.python.org/2/library/functions.html#raw_input

  

的raw_input([提示])

     

如果存在prompt参数,则将其写入标准输出而不带尾随换行符。然后,该函数从输入中读取一行,将其转换为字符串(剥离尾部换行符),然后返回该行。读取EOF时,会引发EOFError。

NOTE:您需要添加更好的错误处理,因为在您的代码中,用户可以输入非数字编号而且会失败。

答案 3 :(得分:0)

您要在string中将integerraw_input进行比较,python2.x中的input()进行比较,python3.x中的string始终返回int。因此,在与int类型进行比较之前,您必须将其强制转换为#!/usr/bin/python b=int(raw_input("Enter value of b:\n")) a = 10 if a>b: print("a is larger") else: print("b is larger")

SELECT NEW