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]
希望我对这个问题的贡献还不算太晚:
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
派生出来的,然后用于确定一天中的阶段。
一天分为四个阶段,前两个阶段称为上午,第三个阶段称为下午,第四个阶段称为晚上。
我正在尝试创建一个基于一天中的时间来吸引用户的程序,但是当我 运行 我的代码出现此错误时: 不可排序的类型: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]
希望我对这个问题的贡献还不算太晚:
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
派生出来的,然后用于确定一天中的阶段。
一天分为四个阶段,前两个阶段称为上午,第三个阶段称为下午,第四个阶段称为晚上。