Python 时光问候节目

Python time greeting program

我正在尝试创建一个基于一天中的时间来吸引用户的程序,但是当我 运行 我的代码出现此错误时: 不可排序的类型:str() < int()

我认为我的做法不对,我也想不出更好的方法,所以写这个程序有更好的方法吗???

这是我的代码:

import time
currentTime = time.strftime('%H:%M')   

if currentTime.hour < 12 :
     print('Good morning')
if currentTime.hour > 12 :
     print('Good afternoon')
if currentTime.hour > 6 :
     print('Good evening')

字符串变量中没有名为 hour 的属性。

import time
currentTime = int(time.strftime('%H'))   

if currentTime < 12 :
     print('Good morning')
if currentTime > 12 :
     print('Good afternoon')
if currentTime > 6 :
     print('Good evening')

您似乎想要使用代表时间的对象。我推荐 datetime 模块。

此外,您的代码假定计算机会猜测您输入的时间是上午还是下午。您必须使用一个小时 18 来表示 6:00 下午。

>>> import datetime
>>> currentTime = datetime.datetime.now()
>>> currentTime.hour
0
>>> if currentTime.hour < 12:
...     print('Good morning.')
... elif 12 <= currentTime.hour < 18:
...     print('Good afternoon.')
... else:
...     print('Good evening.')
...
Good morning.

我看到这里列出的答案很长,所以为那些需要它的人创建了一个更简洁的版本(即使这个 post 已经超过 2 年了)。 然而,这个顶级版本可能会破坏 PEP-8 中概述的格式,因为第三行超过 80 个字符 (92),所以请随意使用更长的版本。

import datetime
hour = datetime.datetime.now().hour
greeting = "Good morning" if 5<=hour<12 else "Good afternoon" if hour<18 else "Good evening"

然后在任何需要的地方使用它...

print("{}!".format(greeting))

...或为了便于阅读而分解...

import datetime
now = datetime.datetime.now()
hour = now.hour

if hour < 12:
    greeting = "Good morning"
elif hour < 18:
    greeting = "Good afternoon"
else:
    greeting = "Good night"

print("{}!".format(greeting))

一个示例用例是说一个随机 'goodbye' 以使程序看起来更逼真。这将像这样完成......

import random, datetime
hour = datetime.datetime.now().hour
greeting = "Have a nice day" if hour<20 else "Good night"
print(random.choice(["I look forward to our next meeting!",greeting+"!"]))
a=input("Enter your name:")

import datetime
currentTime = datetime.datetime.now()
currentTime.hour

if currentTime.hour < 12:
    print('Good morning',a)
elif 12 <= currentTime.hour < 18:
    print('Good afternoon',a)
else:
    print('Good evening',a)

[write this without using python,click this link provided below to write]

https://colab.research.google.com/

希望我对这个问题的贡献还不算太晚:

from datetime import datetime

current_hour = int(datetime.now().strftime('%H'))
if current_hour<12:
    print('Good morning')
elif 12<=current_hour<18:
    print('Good afternoon')
else:
    print('Good Evening')

所需的功能也可以在一行中实现,如下所示

>>> import datetime
>>> print(f"Good {['morning', 'morning', 'afternoon', 'evening'][int(datetime.datetime.now().hour/6)]}")
Good morning

在这里,小时是从 datetime.datetime.now().hour 派生出来的,然后用于确定一天中的阶段。

一天分为四个阶段,前两个阶段称为上午,第三个阶段称为下午,第四个阶段称为晚上。