首页 > 解决方案 > 我正在 python 中显示时间,但它没有打印我想要的内容

问题描述

我的代码是:

import time

local_time = time.localtime()
time_string_d = time.strftime("%d", local_time)
time_string_m = time.strftime("%m", local_time)
time_string_y = time.strftime("%Y", local_time)
time_string_hm = time.strftime("%H:%M", local_time)
day_st = ['1', '21', '31']
day_nd = ['2', '22', '32']
day_rd = ['3', '23']
day_th = ['4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', 
'19', '20', '24', '25', '26', '27', '28', '29', '30']

def month():
    if time_string_m == '1':
        print('It is ' + time_string_hm)
        print('January ', day())
    if time_string_m == '2':
        print('It is ' + time_string_hm)
        print('February ', day())
    if time_string_m == '3':
        print('It is ' + time_string_hm)
        print('March ', day())
    if time_string_m == '4':
        print('It is ' + time_string_hm)
        print('April ', day())
    if time_string_m == '5':
        print('It is ' + time_string_hm)
        print('May ', day())
    if time_string_m == '6':
        print('It is ' + time_string_hm)
        print('June ', day())
    if time_string_m == '7':
        print('It is ' + time_string_hm)
        print('July ', day())
    if time_string_m == '8':
        print('It is ' + time_string_hm)
        print('August ', day())
    if time_string_m == '9':
        print('It is ' + time_string_hm)
        print('September ', day())
    if time_string_m == '10':
        print('It is ' + time_string_hm)
        print('October ', day())
    if time_string_m == '11':
        print('It is ' + time_string_hm)
        print('November ', day())
    if time_string_m == '12':
        print('It is ' + time_string_hm)
        print('December ', day())
    else:
        print('There was an error in the month detecting system.')

def day():
    if time_string_d in day_st:
        print('st')
    if time_string_d in day_nd:
        print('nd')
    if time_string_d in day_rd:
        print('rd')
    if time_string_d in day_th:
        print('th')
    else:
        print('There was an error in the day detecting system.')

我希望它打印以下内容:

它是(当前时间例如:14:20)
(当前月份例如:10 月,当天 + /st/nd/rd/th 例如 8th)

像这样:

It is 14:20
October 8th

此外,如果它失败,那么以下内容:

月份检测系统出错

或者

当天检测系统出现错误。

它实际打印出来的内容:

It is 14:20
There was an error in the day detecting system.
October  None
There was an error in the month detecting system.

标签: python

解决方案


例如,您应该使用单个if-elif-else

x = 1
if x == 1:
    print(1)
elif x == 2:
    print(2)
else:
    print("else")

将打印1,同时

x = 1
if x == 1:
    print(1)
if x == 2:
    print(2)
else:
    print("else")

1然后将打印,else因为它有 2 个 if 语句 - if 和 if-else。elif如果您想了解更多阅读链接文档,您可以在单个 if 语句中使用 0 或多个s。


推荐阅读