Python文档声明,当使用多个参数调用时,max()返回最大的参数.
>>> a = (1, 1, 1, 9)
>>> b = (4, 5, 6)
>>> max(a, b)
(4, 5, 6)
Run Code Online (Sandbox Code Playgroud)
什么定义了如何大元组,在这种情况下,是什么?元组a具有更多数量的元素(四个对三个),并且其最大值(9)大于可以在b(6)中找到的最大数量,因此根据任何标准,我预期它将是回来了.如何通过max()比较元组?
我有这个简单的python程序.我跑了它打印yes,实际上我希望它不打印任何东西因为14不大于14.
我看到了这个相关的问题,但它没有多大帮助.
#! /usr/bin/python
import sys
hours = "14"
if (hours > 14):
print "yes"
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
在Python 3中,尝试对字符串和int(例如1 > "1")进行排序会引发TypeError.为什么比较字符串和int的相等性不会抛出错误?(例如1=="1")将字符串与int进行比较有什么意义?为什么JavaScript和SQL采用不同的方法?
我最近在我的程序中发现了一个拼写错误
while len(first_list) > second_list:
do_stuff
Run Code Online (Sandbox Code Playgroud)
我打得四处这一点,并发现5 < ["apple"] == True和5 > ["apple"] == False
为什么Python允许这些类型的比较?什么是在引擎盖下评估,以确定5是否小于["apple"]?
我的问题是关于pandas用来比较具有"object"类型的列和整数的规则.这是我的代码:
In [334]: df
Out[334]:
c1 c2 c3 c4
id1 1 li -0.367860 5
id2 2 zhao -0.596926 5
id3 3 sun 0.493806 5
id4 4 wang -0.311407 5
id5 5 wang 0.253646 5
In [335]: df < 2
Out[335]:
c1 c2 c3 c4
id1 True True True False
id2 False True True False
id3 False True True False
id4 False True True False
id5 False True True False
In [336]: df.dtypes
Out[336]:
c1 int64
c2 object
c3 float64
c4 …Run Code Online (Sandbox Code Playgroud) 在python 3中,int(50)<'2'导致a TypeError,以及它应该.但是,在python 2.x中,int(50)<'2'返回True(对于其他数字格式也是如此,但int在py2和py3中都存在).那么,我的问题有几个部分:
int小于一个是什么意思str?
ord/ chr?'5'和u'5'这方面有区别吗?我在Python中有这个简单的代码:
import sys
class Crawler(object):
def __init__(self, num_of_runs):
self.run_number = 1
self.num_of_runs = num_of_runs
def single_run(self):
#do stuff
pass
def run(self):
while self.run_number <= self.num_of_runs:
self.single_run()
print self.run_number
self.run_number += 1
if __name__ == "__main__":
num_of_runs = sys.argv[1]
crawler = Crawler(num_of_runs)
crawler.run()
Run Code Online (Sandbox Code Playgroud)
然后,我这样运行:
python path/crawler.py 10
根据我的理解,它应循环10次并停止,对吧?为什么不呢?
我正在尝试通过学习Python的艰难方式,并试图在我可以进一步教育的地方乱七八糟.我认为这样可行:设置raw_input以设置while循环的限制,然后让while循环执行到我用变量"frequency"建立的限制.
它,呃,没有.相反,它将Python发送到创建数字列表的无限循环中,每个循环看起来比最后一个(非常长)列表长一个增量.
原始代码有"while i <6" - 我添加了raw_input变量,即使我输入与原始代码(6)中相同的变量,它也会执行无限循环.
这是完整的脚本:
i = 0
numbers = []
print "What is the frequency?"
frequency = raw_input ('Kenneth? ')
while i < frequency:
print "At the top i is %d" % i
numbers.append(i)
i = i + 1
print "Numbers now: ", numbers
print "At the bottom i is %d" % i
print "The numbers: "
for num in numbers:
print num
Run Code Online (Sandbox Code Playgroud)
为最大限度的无知而道歉 - 我现在在平装本面前有一份Python for Software Design的副本,这是我在LPTHW之后的待办事项清单上的下一件事.
追溯ValueError: cannot convert float NaN to integer我发现的那条线:
max('a', 5)
max(5, 'a')
Run Code Online (Sandbox Code Playgroud)
将返回a而不是5.
在上面的例子中,我使用了示例字符串,a但在我的实际情况中,字符串是a NaN(未能收敛的拟合过程的结果).
这种行为背后的理由是什么?为什么python不会自动识别出那里有一个字符串并且它应该返回该数字?
更好奇的是,min() 没有工作,因为预期:
min('a', 5)
min(5, 'a')
Run Code Online (Sandbox Code Playgroud)
回报5.
鉴于以下代码:
a = '1'
if a == 1:
print 'yes'
else:
print 'no'
Run Code Online (Sandbox Code Playgroud)
我们得到输出为no。
Python 如何将字符串值与这里的 int 值进行比较 ( if a == 1)?在 C 中,这样的比较会产生错误,因为这是在比较不同的类型。
python ×10
comparison ×2
max ×2
dataframe ×1
equality ×1
int ×1
min ×1
pandas ×1
python-2.7 ×1
python-2.x ×1
string ×1
types ×1
while-loop ×1