Я пытаюсь сделать булеву и временную программу. Я пытался сделать это:

import datetime
now = datetime.datetime.now()
if int(00) and int(00) <= now.time and now.minute <= int(11) and int(59):
print ('morning')
elif int(12) and int(00) <= now.time and now.minute <= int(15) and int(59):
print ('afternoon')
elif int(16) and int(00) <= now.time and now.minute <= int(18) and int(59):
print ('evening')
elif int(19) and int(00) <= now.time and now.minute <= int(23) and int(59):
print ('good night')

Но всегда говорилось

TypeError: '<=' not supported between instances of 'int' and 'builtin_function_or_method'

Кто-нибудь может мне помочь?

0
Redsec 26 Авг 2017 в 18:38

4 ответа

Лучший ответ

Это будет делать, я думаю;)

from datetime import datetime

now = datetime.now()

if now.hour < 12:
    print ('morning')
elif now.hour < 16:
    print ('afternoon')
elif now.hour < 19:
    print ('evening')
else:
    print ('good night')
0
gsi-frank 26 Авг 2017 в 15:48

Используйте now.hour вместо now.time. now.time() может дать time объект, а не hour.

А также, кажется, недопустимые условия для оператора if. Ожидание может быть

if int(00) <= now.hour and now.minute <= int(11) and now.seconds <= int(59): 
   print ('morning')
0
Rajez 26 Авг 2017 в 15:51

В Python вы можете использовать синтаксис x <= y <= z <= w для операторов if:

1 <= 2 <= 3 < 4  # evaluates to True

Только проверять час, также упростили if операторы

from datetime import datetime


def greeting(now=None):
    now = now or datetime.now()
    if 0 <= now.hour < 12:
        return 'morning'
    if 12 <= now.hour < 16:
        return 'afternoon'
    if 16 <= now.hour < 19:
        return 'evening'
    if 19 <= now.hour:
        return 'night'

print(greeting())  # 18:48:00 evening
print(greeting(datetime(2017, 8, 26, 22, 0, 0)))  # 22:00:00 night
0
ShmulikA 26 Авг 2017 в 15:48

Не уверен, что это то, что вы хотели:

import datetime

# Define hours that different times of day start
start_of_afternoon = 12
start_of_evening   = 16
start_of_night     = 19

# Get current time
now = datetime.datetime.now()

if now.hour < start_of_afternoon: # before 12pm
    print ('morning')
elif start_of_afternoon <= now.hour and now.hour < start_of_evening: # after 12pm and before 4pm
    print ('afternoon')
elif start_of_evening <= now.hour and now.hour < start_of_night: # after 4pm and before 7pm
    print ('evening')
elif start_of_night <= now.hour: # after 7pm
    print ('good night')
0
MinistryOfChaps 26 Авг 2017 в 17:44