python中的if语句一直失败

x = input("x= ")
if x == 1:
print ('hello,world!')
else:
print('123')

这是源码,为什么不管我输什么都是打印123

x = input('x= ')
print x, type(x)  #看一下x的类型和真实值
if x == 1:
    print('hello')
else:
    print('123')

 如果x为1,且为int型,那肯定会打印出hello,反之则打印123。

追问

不知道会不会是版本问题

追答

你按我说的做,输出的x具体值和类型是什么?我查了一下文档,python3的input相当于python2的raw_input,返回的是一个字符串,所以你把if语句改成:

if x == '1':

就可以了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-15
r=cur.fetchall()
r的数据类型是个查找集的数组,n in r判断的时候n和r数组里的元素类型并不一样。你需要先把r数组的记录取出来:
ns = []
for rec in r:
ns.append(r['usernumber'])
if n in ns:
....
类似这样的方式才能进行对比。追问

。。。

。。。

第2个回答  2014-08-15
因为input获得的是字符串,而不是数字,所以'1'==1返回的是False。。。
你可以x= int(input("x= "))来吧输入转换成整形数字。追问

谢了,不过我认为不是因为那个

追答

input输入的内容也还是字符串。。

第3个回答  2014-08-15
可以啊,我测试了一下,你的代码能够正常运行。可能是你的Python的配置问题,或者是你的Python版本的问题!追问

我的是python3.3 不知道是否因为这个

追答

我的是Python2.7,我测试的没问题!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网