Python: получить последнюю дату в простой строке - PullRequest
0 голосов
/ 24 июня 2018

Как получить последний раз каждый раз, когда я печатаю строку:

Я использовал следующий код:


t1 = str(datetime.datetime.now())
s1 = "%s is a programming %s since" +" "+ t1 
s2 = s1%(Einstein, genius)

Когда я запускаю этот код -время t1 показывает постоянное значение времени:

print (s2)
Einstein is a programming genius since 2018-06-24 17:33:57.484815
Einstein is a programming genius since 2018-06-24 17:33:57.484815
Einstein is a programming genius since 2018-06-24 17:33:57.484815

Есть ли способ автоматического обновления значения "t1" или, другими словами, как я могу обновлять время каждый раз, когда я запускаюкод?как например:

print(s2)
Einstein is a programming genius since 2018-06-24 17:33:57.484815
Einstein is a programming genius since 2018-06-24 17:34:13.484815
Einstein is a programming genius since 2018-06-24 17:35:26.484815

Спасибо заранее.

(Я абсолютный неофит в программировании и питоне).

Ответы [ 3 ]

0 голосов
/ 24 июня 2018

Вы можете сделать функцию, возвращающую значение, которое должно быть актуальным:

def make_time():
    return str(datetime.datetime.now())

s = "%s is a programming %s since %%s" % ("Einstein", "genius")
print(s % make_time())
print(s % make_time())
0 голосов
/ 24 июня 2018

Python не имеет «магических» переменных, которые сами меняют свое значение. Ссылка на переменную, такую ​​как s2, заставит его искать тот же объект, который вы поместили туда в прошлый раз, когда вы что-то ему присвоили, - и он останется прежним. Чтобы заставить Python делать что-то каждый раз, когда вы обращаетесь к нему, вы можете вместо этого использовать функцию. например, сделать s2 функцией, например:

def s2():
    t1 = str(datetime.datetime.now())
    s1 = "%s is a programming %s since" +" "+ t1 
    return s1%("Einstein", "genius")

Теперь используйте s2(), где вы использовали просто s2 в своем коде, и Python выполнит ваш код повторно и выдаст новую строку с текущей датой / временем в нем.

0 голосов
/ 24 июня 2018

Попробуйте передать дату и время непосредственно в строку, а не сохранять ее в переменной.

Ex:

import datetime
import time

s = "%s is a programming %s since %s"
print ( s %("Einstein", "genius", datetime.datetime.now()))
time.sleep(5)
print (s %("Einstein", "genius", datetime.datetime.now()))

Выход:

Einstein is a programming genius since 2018-06-24 19:07:15.697000
Einstein is a programming genius since 2018-06-24 19:07:20.700000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...