Bu, çalışan adları ve bunlara karşılık gelen maaşları içeren iki boyutlu bir diziyi girecek olan modüldür. Burada program sadece bir giriş alıyor ve kullanıcı "*" yazana kadar daha fazla giriş eklemek yerine devam ediyor. Bunu nasıl düzeltirim?Nasıl yapılır: TypeError: 'float' nesnesi abonelik değildir ve çalışmayan bir .append
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
şamandıra Girdi işlevi burada
floatInput()
çağrılması yazdırırım ve isim ve maaş listesi arasında yineleme için döngü için kullanırlar.
for i in range(len(names)):
print(names[i] + ", " + str(salary[i]))
Burada maaşların ortalamasını buluyorum.
def salaryMean():
mean = sum(salary)/float(len(salary))
print("The mean of the salaries is: " + str(mean))
return mean
maaş buraya
salaryMean()
Ben binlerce maaş dönüştürmek İşlev anlamına çağrılıyor. İşte
for i in range(len(names)):
salary = salary[i] * 1000
print(salary)
Ben ortalama dan 5.000 $ aralığında kazanmak bütün emplpyees ben
"TypeError: 'float' object is not subscriptable"
alıyorum burada olduğunu göstermek ve hat
"if salary[x] >= (mean - 5000) and salary[x] <= (mean + 500):"
işaret .... Bunu nasıl düzeltirim?
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
Görünen adın çağrılması İşlev.
displayNames()