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
似乎毫无意义。