相关疑难解决方法(0)

比较python中的日期,==有效,但<=产生错误

我想比较两个日期.此代码有效:

import datetime

todays_date = datetime.date.today()

date1 = datetime.date(2006, 3, 15)
date2 = datetime.date(2009, 4, 30)

print(date1 != date2)
print(date1 == 0)
Run Code Online (Sandbox Code Playgroud)

它产生:

True
False
Run Code Online (Sandbox Code Playgroud)

那些代码不起作用,我不知道为什么:

import datetime

todays_date = datetime.date.today()

date1 = datetime.date(2006, 3, 15)
date2 = datetime.date(2009, 4, 30)

print(date1 != date2)
print(date1 >= 0)
Run Code Online (Sandbox Code Playgroud)

它会产生以下错误:

File 'datetime.py', Line 363: AttributeError: 'int' object has no attribute '__name__'
Run Code Online (Sandbox Code Playgroud)

请注意,所有我改变的是==>=的,为什么不相等的比较结果TrueFalse,而不是在错误comparaison结果还大吗?

我将不胜感激任何帮助!

python datetime python-3.x

5
推荐指数
2
解决办法
302
查看次数

为什么'362'> 378?

可能重复:
Python如何比较字符串和int?

实习生只是让我帮忙调试看起来像这样的代码:

widths = [image.width for image in images]
widths.append(374)
width = max(widths)
Run Code Online (Sandbox Code Playgroud)

...当第一行应该是:

widths = [int(image.width) for image in images]
Run Code Online (Sandbox Code Playgroud)

因此,代码选择字符串'364'而不是整数374. python如何比较字符串和整数?我可以理解将单个字符(如果python具有char数据类型)与整数进行比较,但我没有看到任何直接的方法将字符串与整数进行比较.

python string comparison integer

4
推荐指数
2
解决办法
447
查看次数

Python字符串与不同case和float的比较

为什么python提供这样的输出:

>>> 'apple' > 'T'
True
>>> 'apple' > 't'
False
Run Code Online (Sandbox Code Playgroud)

对于这两种情况都应该是正确的.

编辑:

我有ASCII表的想法.谢谢!!

那么这个怎么样.11.1被视为'11 .1'?

>>> 'apple' > 11.1
True
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
2
解决办法
830
查看次数

python数字字符串比较

我有从JSON对象加载的数值,因此都是字符串。

我在与这些字符串进行数值比较时遇到问题。以下对我来说毫无意义,我希望你们中的一位冠军能解释一下..

In[2]: print '100' < '45'
True

In[3]: print '99' < '45'
False
Run Code Online (Sandbox Code Playgroud)

使用 Python 2.7

python string comparison types

4
推荐指数
1
解决办法
6096
查看次数

python中string和int的内部比较

当字符串与python内部进行比较时,字符串和整数与ASCII代码进行比较然后进行比较或者它是如何进行的.我知道str> int但是内部比较是如何发生的.

"a"> 1

python

3
推荐指数
1
解决办法
194
查看次数

Python中的字符串到整数比较

可能重复:
Python如何比较字符串和int?

我在Python中做了一些比较.我很惊讶地发现我可以将字符串与整数进行比较.然后我做了一个id,发现实际上字符串的id大于int的id,我认为这就是我得到这个输出的原因.

In [19]: 'a' < 3
Out[19]: False

In [20]: 'a'>3
Out[20]: True

In [17]: id('a')
Out[17]: 140414909035824

In [18]: id(3)
Out[18]: 23119752
Run Code Online (Sandbox Code Playgroud)

请确认我正确解释了这种行为(Python在id级别上进行比较).

python

3
推荐指数
1
解决办法
3877
查看次数

为什么string> int求值为True?

为什么对string> int的检查求值为True?

>>> strver = "1"
>>> ver = 1
>>> strver > ver
True
>>> strVer2 = "whaat"
>>> strVer2 > ver
True
Run Code Online (Sandbox Code Playgroud)

做了一些实验:

>>> ver3 = 0
>>> strVer2 > ver3
True
Run Code Online (Sandbox Code Playgroud)

我认为在尝试比较时应该有一个错误,但似乎没有构建来处理这样的错误,或者assert应该使用但是如果使用-O标志运行python代码可能会很危险!

python python-2.7

3
推荐指数
1
解决办法
134
查看次数

以下列方式对字符串列表进行排序的最简单方法是什么?

我有一个字符串列表,可以表示整数和名称.默认字符串比较执行以下操作:

sorted(['1','2','3','4','10','102','14','Alice','John','Sally'])
['1', '10', '102', '14', '2', '3', '4', 'Alice', 'John', 'Sally']
Run Code Online (Sandbox Code Playgroud)

我想按如下方式对列表进行排序:

['1', '2', '3', '4', '10', '14', '102', 'Alice', 'John', 'Sally']
Run Code Online (Sandbox Code Playgroud)

意思是:

  1. 对数字表示整数的所有字符串进行排序
  2. 按字母顺序排序'真实'字符串并将此列表附加到(1.)

我尝试过比较方法,但我不知道如何干净地确定字符串是否代表一个没有try/except的整数?

提前致谢

python sorting string integer list

2
推荐指数
3
解决办法
368
查看次数

比较字符串与 Python 中的浮点数

我在 python shell 中试过这个

>>> a='apple'
>>> b=11.1
>>> a>b
True
>>> a
'apple'
>>> b>a
False
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下a>bTrue 是怎样的吗?Whena是一个字符串并且b是浮点数。

string floating-point python-2.x

2
推荐指数
1
解决办法
5588
查看次数

为什么dicts比任何int都要大?

我的代码意外地使用不等式将dict与int进行比较,结果发现任何dict在测试时都会计算为大于int的值.

d = {'a': 1, 'b': 2}
d > 0
Out[20]: True
d > 10e99999999999999
Out[21]: True
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况而不是类型错误?

这种情况在Python 2.7上运行

python inequality dictionary python-2.7

2
推荐指数
1
解决办法
109
查看次数