Это мой первый проект на Python, и я пытаюсь сделать учебное напоминание, которое скажет мне переключаться между пассивным и активным обучением, и я надеюсь в дальнейшем заставить его реагировать на ввод через интерфейс, но сейчас я хочу использовать время .localtime (time.time ()), чтобы получить метку времени, целое число, которое является четным / неравным часом текущего. Я мог бы просто посмотреть на часы, но это должно дать мне какой-то результат, например, два разных цвета, но это не важно, моя тренировочная платформа. Так, как я могу получить целые числа через время. Я пробовал разные идеи.

Ну, этот код фрагментирован, но в любом случае это то, где я сейчас нахожусь. Это некая комбинация функции и списка, который вообще не готов, это всего лишь фрагменты разных тестов.

Это методы, которые я изучил, но я не смог заставить что-либо из этого извлечь что-либо из модуля времени, который я пробовал. Возможно это просто не было видно / напечатано.

Булевы


Если еще


if num % 2 == 0:
    pass # Even 
else:
    pass # Odd

Условия Python и операторы If Python поддерживает обычные логические условия из математики: * Равно: a == b * Не равно: a! = B * Меньше чем: a b

* Больше или равно: a> = b

import datetime

print ("Current date and time: " , datetime.datetime.now())

    def time_even_or_uneven():
        if datetime.datetime.now % 2 == 0:
            print("Number is even")
        else:
            print("Number is odd")

#This is where my questions start
# Uncomplete test code
# I´m trying to find a way to start off a function and later on several # functions from the timestamp I get from the code above. 

            print(datetime.datetime.now % 2 = 0)


import datetime...
    File "", line 12
        print(datetime.datetime.now % 2 = 0)
         ^
SyntaxError: keyword can't be an expression

Без ошибочной строки я получаю метку времени из модуля времени:

Текущая дата и время: 2019-07-04 13: 58: 15.811722

Я ничего не вижу из функции "time_even_or_uneven"

0
Ola 4 Июл 2019 в 15:02

4 ответа

Лучший ответ

Попробуй использовать:

    datetime.datetime.now().time().hour%2==0
    or
    datetime.datetime.now().time().minute%2==0
    or
    datetime.datetime.now().time().second%2==0
1
Rahul Verma 4 Июл 2019 в 12:11
#This is how the code looks now thanks to a combination of helpful comments:
#Thanks Rahul. Thanks Dan. Thanks Rishu.

import datetime

print ("Current date and time: " , datetime.datetime.now())

# Gives me a True/False output
datetime.datetime.now().hour%2==0

if datetime.datetime.now().hour%2 == 0:
        print("You could consider some active training the next hour")
else:
        print("You could consider some passive studies the next hour")
0
Dan 9 Июл 2019 в 08:35

В вашем коде много неправильного. Ошибка, которую вы получаете, заключается в том, что вы используете один = вместо двойного ==. Одиночный для назначения, и вы не можете сделать это как выражение.

Но после исправления вы сразу же нажмете другую ошибку, потому что datetime.datetime.now - это функция. таким образом % не определен. Вместо этого вызовите `` datetime.datetime.now () `, чтобы получить значение, возвращаемое функцией вместо объекта функции.

Однако это все равно не сработает, поскольку datetime.datetime.now() является объектом datetime.datetime, в основном кортежем целых чисел, который также не определяет %. Поэтому вместо этого получите дни или секунды или что-то, что является целым числом, т. Е. datetime.datetime.now().second % 2 == 0 действителен для проверки четной секунды.

Но прежде чем что-либо из этого, вы должны спросить себя, что означает четная дата? Для этого нет стандартного определения, поэтому вам нужно определить его более четко, чтобы читатели вашего кода понимали, что вы подразумеваете под ним.

Для ясности, вот все эти шаги с каждым из сообщений об ошибках:

Используя = вместо ==:

print(datetime.datetime.now % 2 = 0)
  File "<ipython-input-17-9fea3c9eff3e>", line 1
    print(datetime.datetime.now % 2 = 0)
         ^ SyntaxError: keyword can't be an expression

Попытка применить % к объекту функции, а не к возвращенному значению функции (т. Е. Выход из ()):

print(datetime.datetime.now % 2 == 0)
Traceback (most recent call last):
  File "/Users/dgolding/PycharmProjects/dsdk-pg/venv/lib/python3.6/site-packages/IPython/core/interactiveshell.py",

строка 2963, в файле run_code exec (code_obj, self.user_global_ns, self.user_ns) "", строка 1, в печати (datetime.datetime.now% 2 == 0) TypeError: неподдерживаемые типы операндов для%: ' builtin_function_or_method 'и' int '

Попытка применить % к объекту datetime

print(datetime.datetime.now() % 2 == 0)
Traceback (most recent call last):
  File "/Users/dgolding/PycharmProjects/dsdk-pg/venv/lib/python3.6/site-packages/IPython/core/interactiveshell.py",

строка 2963, в файле run_code exec (code_obj, self.user_global_ns, self.user_ns) "", строка 1 в печати (datetime.datetime.now ()% 2 == 0) TypeError: неподдерживаемые типы операндов для% : datetime.datetime и int

Наконец, что-то допустимое, применяя % к целому числу:

print(datetime.datetime.now().second % 2 == 0)
True
0
Dan 4 Июл 2019 в 12:20

Так как datetime.datetime.now возвращает значение объекта с адресом его памяти.

0
Rishu Majumdar 4 Июл 2019 в 12:10