这个代码可以缩短吗?使用表情符号自定义时间状态



我正在尝试创建一个自定义状态,在那里你可以实时看到时间,时钟的表情符号指示同一时间,我已经完成了,而且它是功能性的,但我想知道是否有任何方法可以缩写这个代码,或者它已经尽可能高效了吗?感谢

import time
emoji = ""
emojis = ["🕐", "🕜", "🕑", "🕝", "🕒", "🕞",
"🕓", "🕟", "🕔", "🕠", "🕕", "🕡",
"🕖", "🕢", "🕗", "🕣", "🕘", "🕤",
"🕙", "🕥", "🕚", "🕦", "🕛", "🕧"]

while True:
hour= time.strftime('%H:%M:%S')
hm = int(time.strftime('%I')) + int(time.strftime('%M'))/100
if 1 <= hm < 1.30:
emoji = emojis[0]
elif 1.30 <= hm < 2:
emoji = emojis[1]
elif 2 <= hm < 2.30:
emoji = emojis[2]
elif 2.30 <= hm < 3:
emoji = emojis[3]
elif 3 <= hm < 3.30:
emoji = emojis[4]
elif 3.30 <= hm < 4:
emoji = emojis[5]
elif 4 <= hm < 4.30:
emoji = emojis[6]
elif 4.30 <= hm < 5:
emoji = emojis[7]
elif 5 <= hm < 5.30:
emoji = emojis[8]
elif 5.30 <= hm < 6:
emoji = emojis[9]
elif 6 <= hm < 6.30:
emoji = emojis[10]
elif 6.30 <= hm < 7:
emoji = emojis[11]
elif 7 <= hm < 7.30:
emoji = emojis[12]
elif 7.30 <= hm < 8:
emoji = emojis[13]
elif 8 <= hm < 8.30:
emoji = emojis[14]
elif 8.30 <= hm < 9:
emoji = emojis[15]
elif 9 <= hm < 9.30:
emoji = emojis[16]
elif 9.30 <= hm < 10:
emoji = emojis[17]
elif 10 <= hm < 10.30:
emoji = emojis[18]
elif 10.30 <= hm < 11:
emoji = emojis[19]
elif 11 <= hm < 11.30:
emoji = emojis[20]
elif 11.30 <= hm < 12:
emoji = emojis[21]
elif 12 <= hm < 12.30:
emoji = emojis[22]
elif 12.30 <= hm < 13:
emoji = emojis[23]

print(f"{emoji} {hour}")
time.sleep(1)

我会对索引有点偏离,但以下方法有一些改进。

import time
emojis = "🕐🕜🕑🕝🕒🕞🕓🕟🕔🕠🕕🕡🕖🕢🕗🕣🕘🕤🕙🕥🕚🕦🕛🕧"
while True:
hour= time.strftime('%H:%M:%S')
hm = int(time.localtime().tm_hour + time.localtime().tm_min / 30 + 0.5)
print(f"{emojis[hm]} {hour}")
time.sleep(1)

最新更新