如何在嵌套循环中调用值?
How to call upon values in a nested loop?
我正在准备我的第一次编程考试 class。我不知道如何在嵌套循环中调用和求和给定索引的值。我需要将每个员工的工资以及每个员工的工作时间加在一起。这些值嵌套为 [employee_records] 中的 [record],分别作为索引 2 和 3。任何帮助将不胜感激!
这是我遇到的错误:
line 54, in <module>
for y in record[2]:
TypeError: 'float' object is not iterable
代码如下:
num_employees = int(input("Enter number of salespersons to be evaluated: "))
numNums = num_employees
employee_records = []
wage = None
lrange = [1, 2, 3, 4]
while num_employees > 0:
record = []
name = (input("Enter employee name: "))
try:
level = int(input("Enter this employee's level: "))
if level not in lrange:
print("Employee level must be from 1 to 4. Please re-enter employee's name.")
if numNums < num_employees:
num_employees += 1
continue
except ValueError:
print("Employee level must be from 1 to 4. Please re-enter employee's name.")
if numNums < num_employees:
num_employees += 1
continue
try:
hours = float(input("Enter hours worked by this employee: "))
except ValueError:
print("Entry must be a number. Please re-enter employee's name.")
if numNums < num_employees:
num_employees += 1
continue
try:
sales = float(input("Enter revenue generated by this employee: "))
except ValueError:
print("Entry must be a number. Please re-enter employee's name.")
if numNums < num_employees:
num_employees += 1
continue
num_employees -= 1
record.append(name.capitalize())
record.append(level)
record.append(hours)
record.append("${:,.2f}".format(sales))
employee_records.append(record)
print(employee_records)
totalsales = None
totalhours = None
for x in employee_records:
for y in record[2]:
totalhours += y
for y in record[3]:
totalsales += y
print(totalhours)
print(totalsales)
您不需要嵌套循环。直接使用字段即可。但是,您不应将销售额格式化为字符串。您需要原始数字才能进行数学运算。打印时格式化,而不是之前。
record.append(name.capitalize())
record.append(level)
record.append(hours)
record.append(sales)
employee_records.append(record)
print(employee_records)
totalsales = None
totalhours = None
for x in employee_records:
totalhours += record[2]
totalsales += record[3]
print(totalhours)
print(totalsales)
我正在准备我的第一次编程考试 class。我不知道如何在嵌套循环中调用和求和给定索引的值。我需要将每个员工的工资以及每个员工的工作时间加在一起。这些值嵌套为 [employee_records] 中的 [record],分别作为索引 2 和 3。任何帮助将不胜感激!
这是我遇到的错误:
line 54, in <module>
for y in record[2]:
TypeError: 'float' object is not iterable
代码如下:
num_employees = int(input("Enter number of salespersons to be evaluated: "))
numNums = num_employees
employee_records = []
wage = None
lrange = [1, 2, 3, 4]
while num_employees > 0:
record = []
name = (input("Enter employee name: "))
try:
level = int(input("Enter this employee's level: "))
if level not in lrange:
print("Employee level must be from 1 to 4. Please re-enter employee's name.")
if numNums < num_employees:
num_employees += 1
continue
except ValueError:
print("Employee level must be from 1 to 4. Please re-enter employee's name.")
if numNums < num_employees:
num_employees += 1
continue
try:
hours = float(input("Enter hours worked by this employee: "))
except ValueError:
print("Entry must be a number. Please re-enter employee's name.")
if numNums < num_employees:
num_employees += 1
continue
try:
sales = float(input("Enter revenue generated by this employee: "))
except ValueError:
print("Entry must be a number. Please re-enter employee's name.")
if numNums < num_employees:
num_employees += 1
continue
num_employees -= 1
record.append(name.capitalize())
record.append(level)
record.append(hours)
record.append("${:,.2f}".format(sales))
employee_records.append(record)
print(employee_records)
totalsales = None
totalhours = None
for x in employee_records:
for y in record[2]:
totalhours += y
for y in record[3]:
totalsales += y
print(totalhours)
print(totalsales)
您不需要嵌套循环。直接使用字段即可。但是,您不应将销售额格式化为字符串。您需要原始数字才能进行数学运算。打印时格式化,而不是之前。
record.append(name.capitalize())
record.append(level)
record.append(hours)
record.append(sales)
employee_records.append(record)
print(employee_records)
totalsales = None
totalhours = None
for x in employee_records:
totalhours += record[2]
totalsales += record[3]
print(totalhours)
print(totalsales)