我是Python的新手,我正在尝试创建一个代码块,如果某个值大于我定义的值,则会打印一个语句。但是下面的代码不起作用,尽管row [4]的值大于'10',它仍然没有打印任何内容。即使我尝试, outlined in red. The detail card is fixed width 200, and the available space is about 400+ .This is displaying at the left of its available space, not in the centre as intended. The empty spaces to the left and right of the green in the image are the empty
它仍然不符合标准,并且它不打印任何东西。提前谢谢!
该列表是传递到列表中的MySQL语句字符串的输出。 row [4]为QueryTime。
== '55.9280':
e.g。
Forename: Surname: Email: Querytime:
第4行=
for row in list:
print row[4]
if row[4] > '10':
print("is greater than")
答案 0 :(得分:0)
似乎new_df['type'] = new_df.apply(name_group, axis=1)
是一个整数列表。您的错误在于您将整数与字符串进行比较。
正确的代码:
row
答案 1 :(得分:0)
>>> print 55.9280 == '55.9280'
False
>>> print 55.9280 == 55.9280
True
>>> print 55.9280 > '10'
False
>>> print 55.9280 > 10
True
您需要注意数据类型。
答案 2 :(得分:0)
不确定您尝试做什么(请参阅xyproblem.info),但以下代码与您的代码类似,并且不会崩溃。如果这是你想要的,你需要在字符串和整数之间进行转换。
[list = \[\[1,2,3,4,5\], \[5,10,15,20,25\], \[15,16,17,18,19\], \[20,21,22,23,24\], \[21,22,23,24,25\]\]
for row in list:
print row\[4\]
if row\[4\] > int('10'):
print("is greater than")][1]
答案 3 :(得分:0)
这里的问题是你正在处理字符串而不是数字。即使一个字符串由数字组成,就python而言仍然被认为是一个单词,并且询问一个单词是否“大于”另一个单词也没有任何意义。
询问“你好世界”> 17是没有意义的,并且询问'18'> 17是没有意义的。你应该把'18'想成一个单词。
事实上,如果你尝试比较一个字符串和一个整数,python应该引发一个错误。像这样的东西: TypeError:'>' 'str'和'int'实例之间不支持
你的程序没有引发任何错误的事实会建议你将字符串与字符串进行比较(这也没有多大意义),所以你需要将你的stings转换为数字。我建议如下:
if float(row[4]) > 10:
您现在正在比较两个数字,这是有道理的。
我会使用float而不是int,因为查看你的数据,你的数字不是整数。