使用清单中的值在Python中创建复杂的嵌套循环

时间:2019-11-18 22:18:48

标签: python python-3.x

我需要为每个年级获得这种类型的输出。输出仅针对上年级和学校工作日数。第一个循环是打印工作日数,这是用户输入的信息。例如5,因此它将从星期一打印到星期五。第二循环是打印星星的嵌套循环。 注意-所有变量和列表均作为用户的输入。

num_of_class=4
num_of_days=5
num_of_lectures=[1,3,3,4] #each element represent num of lectures for each grade upto 4
daylist=["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
lastname=daylist[num_of_days-1]

first=0
for dayrow in daylist[:num_of_days]:
    print(dayrow, end=" ")
print("\r")

for first in range(first, lastelement):
    for second in range(0, num_of_days):
        print ("*", end=" ")
    print("\r")
output
monday tuesday wednesday thursday friday 
* * * * * 
* * * * * 
* * * * * 
* * * * * 
Expected Output
monday tuesday wednesday thursday friday 
* * * * * 
monday tuesday wednesday thursday friday 
* * * * * 
* * * * * 
* * * * * 
monday tuesday wednesday thursday friday 
* * * * * 
* * * * * 
* * * * * 
monday tuesday wednesday thursday friday 
* * * * * 
* * * * * 
* * * * * 
* * * * * 

2 个答案:

答案 0 :(得分:0)

这应该解决目的:

num_of_class=4
num_of_days=5
num_of_lectures=[1,3,3,4] #each element represent num of lectures for each grade upto 4
daylist=["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
lastname=daylist[num_of_days-1]


for i in range(num_of_class):
    print(' '.join(daylist[:num_of_days]))
    for j in range(num_of_lectures[i]):
        print('* ' * num_of_days)

答案 1 :(得分:0)

我没有遵循应该执行的操作,但是我会尽力在这里尝试提供解决方案。...

代替此:

for dayrow in daylist[:num_of_days]:
    print(dayrow, end=" ")
print("\r")

如果您的预期输出为:星期一星期二星期三星期三星期五,一个简单的解决方案是将这些列表元素一起加入。

" ".join(daylist[:num_of_days])

就恒星而言,您似乎想要创建一个二维列表,其中X轴是number_of_days,Y轴是num_of_lectures中的元素。但是我不确定应该在哪里使用num_of_class

dayrow = " ".join(daylist[:num_of_days])
for lecture in num_of_lectures:
    print(dayrow)
    row = ("* " * num_of_days).strip()
    for i in range(0, lecture):
        print(row)