TypeError: 'int' object is not callable
Jag behöver hjälp med min kod!
def main():
meny()#fel
while True:
try:
svar=input("Vill du fortsätta?(J/N)")
if svar =="N" or svar =="n":
break
else:
meny()
except ValueError:
meny()
def meny(): #menyfunktion
print("Välj 1-3 i menyn:"
"\n1. Medelvärdet av löner"
"\n2. Medianen av lönerna"
"\n3. Ge en löneökning till samtliga")
try:
val=int(input("Ange ditt val:"))
medelvärde=0
median=0
ny_lön=0
if val == 1:
medelvärde()
elif val == 2:
median()
elif val == 3:
ny_lön()
else:
print("Du måste välja 1-3")
except ValueError:
print("Du måste välja ett heltal")
def månadslön():
try:
n=10
månadslön=[]
for i in range(0,n):
lön=int(input("Skriv in månadslön: "))
månadslön.append(lön)
list.sort(månadslön)
print("De tio månadslönerna är: ", månadslön)
def medelvärde(): #medelvärdensfunktion
summa =0
medel=0
for i in range(0,len(månadslön)):
summa+=list[i]
medel=summa/len(månadslön)
print("Medelvärdet av talen är:", medelvärde)
def median(): #medianfunktion
summa=0
median=0
for i in range (0, len(list)):
median=((list[4]+list[5])/len(list))
print("Medianen av talen är:", median)
def ny_lön(): # funktion för ny lön efter löneförhöjning
summa=0
n=1
ny_lön=((månadslön[n])*1.04)
for i in range (0, len(månadslön)):
ny_lön=((månadslön[0]*1.04), (månadslön[1]*1.04), (månadslön[2]*1.04), (månadslön[3]*1.04), (månadslön[4]*1.04), (månadslön[5]*1.04), (månadslön[6]*1.04), (månadslön[7]*1.04), (månadslön[8]*1.04), (månadslön[9]*1.04))
print("Ny lön är:", ny_lön)
except ValueError:
print("Du måste skriva ett heltal: ")
månadslön()
main()
Vad gör jag för fel?
try:
val=int(input("Ange ditt val:"))
medelvärde=0
median=0
ny_lön=0
if val == 1:
medelvärde()
medelvärde är här ett heltal = 0. Sedan har du en funktion (?) som också heter medelvärde. Byt namn på något.
Dr. G skrev:try:
val=int(input("Ange ditt val:"))
medelvärde=0
median=0
ny_lön=0
if val == 1:
medelvärde()
medelvärde är här ett heltal = 0. Sedan har du en funktion (?) som också heter medelvärde. Byt namn på något.
Jag får samma fel svar fortfarande, även om jag ändrar. Har du någon annan ide?
Vilket felmeddelande får du? Det brukar indikera på vilket radnummer som det går snett.
Dr. G skrev:Vilket felmeddelande får du? Det brukar indikera på vilket radnummer som det går snett.
Raden för medelvärde()
Meny()
Main()
Där får jag felmeddelande
Ingen av de funktionerna finns med i koden, eller ser jag fel?
Dr. G skrev:Ingen av de funktionerna finns med i koden, eller ser jag fel?
Jo då ibörjan
"medelvärde" kan inte både vara en funktion och ett tal.
Laguna skrev:"medelvärde" kan inte både vara en funktion och ett tal.
Det har jag ändrat och ändå får jag samma fel
Jaha, hur ser det ut nu då?
Laguna skrev:Jaha, hur ser det ut nu då?
Jag har jobbat endel och nu ser det ut såhär, å den gr allt förutom att räkna ut medelvärde, median och ny_lön, så jag är tacksam för mer hjälp :)
Generellt sett så bör du använda ASCII (dvs inga svenska tecken) för identifierare. Python från vers 3 klarar svenska men tidigare versioner gör det inte och skulle du någon gång ge dig på ett annat språk så är det troligt att det språket bara klarar ASCII. Det vanliga är nog att använda engelska termer eller svenska med å,ä bytt mot a och ö bytt mot o. Men det är en smaksak.
I löner definierar du månadslön som en vektor och fyller den. Det är en lokal variabel som bara är tillgänglig i den den funktionen. När du använder samma identifierare i de andra funktionerna så är det nya variabler som skapas i de funktionerna men som då inte har några värden. Flytta ut månadslön=[] till global scope, dvs direkt efter import statistics så är den tillgänglig i alla funktioner.
Jag förstår inte hur du räknar ut medianen. Den bör du nog titta på. Medianen är ju värdet i mitten av listan.
i ny_lön så uppdateras inte månadslön[] utan värdena skrivs bara ut - men det kanske är meningen?
Annars ser det ut att fungera tror jag utan att ha kört det.
CurtJ skrev:Generellt sett så bör du använda ASCII (dvs inga svenska tecken) för identifierare. Python från vers 3 klarar svenska men tidigare versioner gör det inte och skulle du någon gång ge dig på ett annat språk så är det troligt att det språket bara klarar ASCII. Det vanliga är nog att använda engelska termer eller svenska med å,ä bytt mot a och ö bytt mot o. Men det är en smaksak.
I löner definierar du månadslön som en vektor och fyller den. Det är en lokal variabel som bara är tillgänglig i den den funktionen. När du använder samma identifierare i de andra funktionerna så är det nya variabler som skapas i de funktionerna men som då inte har några värden. Flytta ut månadslön=[] till global scope, dvs direkt efter import statistics så är den tillgänglig i alla funktioner.
Jag förstår inte hur du räknar ut medianen. Den bör du nog titta på. Medianen är ju värdet i mitten av listan.
i ny_lön så uppdateras inte månadslön[] utan värdena skrivs bara ut - men det kanske är meningen?
Annars ser det ut att fungera tror jag utan att ha kört det.
Stort tack, detta löste problemet :) och jag fick naturligtvis ändra i medianen. TACK!