1

我试图让一天打印真假。无论给出“日期”的整数是什么,它目前都只打印 False。我是 Python 新手,所以如果这是一个新手疏忽,请多多包涵。

def date():
    date = raw_input("Date (ex. Jun 19): ")
    date = date.split(' ')
    month = date[0]
    month = month[:3].title()
    day = date[1]
    day.isdigit()
    if day < 10:
            print "True"
    else:
            print "False"
4

3 回答 3

7

day是一个字符串,在 Python 2 中,任何字符串比较大于任何数字

>>> "0" > 1
True
>>> "" > 100000000000000000000
True

这种(一致但任意的)行为在 Python 3 中已经改变:

>>> "" > 100000000000000000000
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() > int()
于 2013-06-28T08:21:54.010 回答
5

raw_input返回一个字符串,因此您应该将其转换为intfirst。

day = int(date[1])
于 2013-06-28T08:22:11.283 回答
5

在python 2中raw_input返回一个字符串然后你将一个字符串与一个int进行比较,这就是你得到错误的原因

使用int关键字将 str 转换为 int

if int(day) < 10:

像这样

于 2013-06-28T08:23:50.303 回答