for day_num in range(1,8):
sales=float(input("Enter the sales for Day {}".format(day_num)))
bakery_temp_info.append(sales)
bakery_sale.append(list(bakery_temp_info))
del bakery_temp_info[:]
这是我的老师给我的示例代码的一部分。谁能解释一下变量“ day_num”在先前未定义的情况下如何用于此循环。我已经尝试在循环中将其打印出来,并且每次循环运行时它都会增加1。任何帮助表示感谢,谢谢。
答案 0 :(得分:2)
不必声明Python变量;第一次分配给您,它就会创建。
几乎所有将名称赋值的东西都算作赋值,而不仅仅是实际的=
语句。其中包括:
name = …
while (name := …) > 0:
for name in …:
import name
with … as name:
def func(name):
…等等。
每一个都为当前范围内的name
分配一个值(最后一个除外,后者仅在函数体的范围内分配一个值)。 name
是否在该语句之前是变量都没有关系;现在是一个。
如果不清楚在哪里进行任何分配,则您的for
循环等效于此while
循环:
_range18iter = iter(range(1, 8))
try:
while True:
day_num = next(_range18iter)
# body of the for loop
except StopIteration:
pass
def _range18iter
现在很明显,只要iterable不为空,就将day_num
分配给它。
答案 1 :(得分:0)
您正在循环中声明day_num
。基本上,循环是告诉解释器您要迭代某些内容并希望为每个迭代命名,在这种情况下为day_num
。
在这种情况下,您提供的可迭代范围是1-8,但是您可以轻松地将其传递给列表。在这种情况下,您将作为示例调用列表day_num
的每个元素。
每次循环时,它都会更新day_num
中存储的值。