[英]How to change for loop variables in python/django while for loop is running
我想在循環運行時更改定義 for 循環的變量。 當你看到代碼時它會更有意義,所以它是:
days = form.instance.days
for i in range(0, days + 1):
days_added = i
current_end = class_start_date + datetime.timedelta(days=days_added)
current_end_day = calendar.day_name[datetime.datetime.strptime(str(current_end), '%Y-%m-%d').weekday()]
if current_end_day == 'Saturday' or current_end_day == 'Sunday':
days = days + 1
你看,當我運行代碼 days = days
days = days + 1
時,我希望更新for i in range(0, days + 1):
的天數,以便 forloop 的總循環數增加 1每days = days + 1
發生時。 days = form.instance.days
增加了 1,但是days
in for i in range(0, days + 1):
沒有更新。 我希望你們能幫忙。 謝謝。
當你寫
for i in <expr>:
該表達式僅被評估一次,因此您無法通過for
循環實現您想要的。 您可以改用一段while
:
i = 0
while i < days + 1:
days_added = i
current_end = class_start_date + datetime.timedelta(days=days_added)
current_end_day = calendar.day_name[datetime.datetime.strptime(str(current_end), '%Y-%m-%d').weekday()]
if current_end_day == 'Saturday' or current_end_day == 'Sunday':
days = days + 1
i += 1
現在i < days + 1
條件每次都會被評估,它將使用days
的更新值。
while
循環可能更適合您的用例。 您需要為它建立一個停止循環的條件,同時避免陷入無限循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.