簡體   English   中英

我如何將用戶 input() 限制為每天只輸入一次數據? 我在想也許是日期時間戳,但不確定如何實現

[英]How would I limit the user input() to only entering data once per day? I was thinking maybe the datetime stamp but unsure how to implement this

這是我檢索用戶輸入的代碼:

def inputQ1():
while True:
    try:
        Q1A = int(input("Rate your exercise today on scale 1-100: "))
    except ValueError:
        print("invalid value")
        continue
    else:
        return Q1A

以及我將輸入記錄到列表中的代碼:

ansQ1 = []
ansQ1.append(inputQ1())
print(ansQ1)

我現在如何再次要求這個用戶輸入,每天一次?

您可以使用datetime.datetime.now()

from datetime import datetime

def inputQ1():
    while True:
        try:
            Q1A = int(input("Rate your exercise today on scale 1-100: "))
        except ValueError:
            print("invalid value")
            continue
        else:
            return Q1A

dates = []
ansQ1 = []
while True:
    today = datetime.now().strftime("%Y-%m-%d")
    if today not in dates:
        ansQ1.append(inputQ1())
        dates.append(today)
        print(ansQ1)

其中datetime.now().strftime("%Y-%m-%d")返回從2020-05-21的當前日期。

需要注意的一點是,依賴try並不是一個很好的做法, except將輸入轉換為int 相反,使用str.isdigit()方法:

def inputQ1():
    while True:
        Q1A = input("Rate your exercise today on scale 1-100: ")
        if Q1A.isdigit():
            return int(Q1A)
        print("invalid value")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM