【发布时间】:2016-03-27 02:21:59
【问题描述】:
该模块将输入一个包含员工姓名及其相应工资的二维数组。 这里程序只接受一个输入并继续前进,而不是添加更多输入,直到用户输入“*”。我该如何解决这个问题?
salary = []
names = []
def floatInput():
done = False
while not done:
nameIn = input("Please enter the employee name or * to finish: ")
salaryIn = input("Please enter the salary in thousands for " + nameIn + ": ")
try:
salaryIn = float(salaryIn)
except:
print("Program was expecting a positive integer or floating point number!")
if nameIn == "*":
done = True
else:
salary.append(salaryIn)
names.append(nameIn)
return salary
return names
调用浮点输入函数
floatInput()
这里我使用了一个 for 循环来打印和遍历姓名和薪水的列表。
for i in range(len(names)):
print(names[i] + ", " + str(salary[i]))
我在这里找到工资的平均值。
def salaryMean():
mean = sum(salary) / float(len(salary))
print("The mean of the salaries is: " + str(mean))
return mean
调用工资平均函数
salaryMean()
我在这里把薪水换算成千。
for i in range(len(names)):
salary = salary[i] * 1000
print(salary)
在这里,我显示了平均收入在 5,000 美元范围内的所有员工 这是我得到的地方
"TypeError: 'float' object is not subscriptable"
它指向线
"if salary[x] >= (mean - 5000) and salary[x] <= (mean + 500):"
....我该如何解决这个问题?
def displayNames():
done = False
x = 0
while not done:
if done:
break
if salary[x] >= (mean - 5000) and salary[x] <= (mean + 5000):
print(salary[x])
x += 1
if x > len(salary):
done = True
调用显示名称函数。
displayNames()
【问题讨论】:
标签: python python-3.x