为什么我将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")
答案 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
中将integer
与raw_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