Python:嵌套循环的行为不符合我的要求

Python:嵌套循环的行为不符合我的要求,python,list,python-3.x,for-loop,nested-loops,Python,List,Python 3.x,For Loop,Nested Loops,我需要写一个程序来计算用户的支付。我一直坚持的是,我必须询问用户每周每天工作的小时数(这取决于他们指定的周数)。这就是我到目前为止所做的: daysofweek = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] day = 0 while day < weeks: #user specified variable above 0 for i in range(len(day

我需要写一个程序来计算用户的支付。我一直坚持的是,我必须询问用户每周每天工作的小时数(这取决于他们指定的周数)。这就是我到目前为止所做的:

daysofweek = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]

day = 0
while day < weeks: #user specified variable above 0
  for i in range(len(daysofweek)):
    while True:
      daysofweek[i] = input("Enter the number of hours for week 1 " + daysofweek[i] + ": ")
      try:
        hours = float(daysofweek[i])
        if hours < 0 or hours > 24:
          print("Invalid: Enter a number between 0 and 24")
          continue
        break
      except ValueError:
        print("Invalid: Enter a number between 0 and 24")
day = day + 1
daysofweek=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
日=0
while day24:
打印(“无效:输入一个介于0和24之间的数字”)
持续
打破
除值错误外:
打印(“无效:输入一个介于0和24之间的数字”)
天=天+1

很抱歉代码墙(其中一些可能与我的问题无关)。因此,基本上,这会在第一周遍历列表,然后用输入的数字替换日期名称。另外,我不知道如何存储这些输入的变量,以便我可以在以后计算工资。抱歉,如果这要求太高,只是完全卡住了。谢谢

您可以使用dict,将日期和小时数关联起来:

daysofweek = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
hours = {}
for day in daysofweek:
    hour = -1
    while hour < 0 or hour > 24:
        hour = input("Enter the number of hours for week 1 " + day + ": ")
    hours[day] = hour

可以通过在字典键中添加一个整数和一个循环来添加周:

for week in range(nb_week):
    for day in daysofweek:
        hour = -1
        while hour < 0 or hour > 24:
            hour = input("Enter the number of hours for week " +str(week) + " " + day + ": ")
        hours[week, day] = hour


请注意,更多的代码就足以得到更简单的代码:例如,对于daysofweek中的day使用
,而不是对于范围内的i(len(daysofweek))
使用C样式的
,或者使用字典来关联数据

您可以使用dict,将日期和小时数关联起来:

daysofweek = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
hours = {}
for day in daysofweek:
    hour = -1
    while hour < 0 or hour > 24:
        hour = input("Enter the number of hours for week 1 " + day + ": ")
    hours[day] = hour

可以通过在字典键中添加一个整数和一个循环来添加周:

for week in range(nb_week):
    for day in daysofweek:
        hour = -1
        while hour < 0 or hour > 24:
            hour = input("Enter the number of hours for week " +str(week) + " " + day + ": ")
        hours[week, day] = hour


请注意,更多的代码就足以得到更简单的代码:例如,对于daysofweek中的day使用
,而不是对于范围内的i(len(daysofweek))
使用C样式的
,或者使用字典来关联数据

“但随后日期名称将替换为输入的数字”-是的,当您重新分配元素时会发生这种情况。为什么,你想让它对输入的值做什么?是的,我知道为什么会发生,但不知道如何更改它。我需要把它们相加,再乘以另一个输入。是的,这就是你告诉Python要做的
daysofweek[i]=输入('x')
替换
daysofweek
中的值。您打算怎么做?“但随后日期名称将替换为输入的数字”-是的,当您重新分配元素时会发生这种情况。为什么,你想让它对输入的值做什么?是的,我知道为什么会发生,但不知道如何更改它。我需要把它们相加,再乘以另一个输入。是的,这就是你告诉Python要做的
daysofweek[i]=输入('x')
替换
daysofweek
中的值。你打算做什么?我现在有了:
daysofweek=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
hours={}
当日<周:
当小时<0或小时>24时:
当日<周:
当日<周:
小时=输入(“输入第1周的小时数”+天+:”)
小时[天]=小时
day=day+1
但是它会无限地通过一周中的几天,而不管
值您必须增加
。而且,
day
似乎没有意义。我现在有了:
daysofweek=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
hours={}
当日<周:
当小时<0或小时>24时:
当日<周:
当日<周:
小时=输入(“输入第1周的小时数”+天+:”)
小时[天]=小时
day=day+1
但是它会无限地通过一周中的几天,而不管
值您必须增加
。而且,
day
似乎毫无意义。