Permalänk

python

Tjenare, jag skulle vilja veta av någon kunnig programmerare vad som är felet på denna kod? Jag använder python 3.2.3 och är ganska ny inom detta, och har försökt mig på en kalkylator med ganska simpla funktioner. men ett fel uppstår som gör att jag inte kan skriva in min korrespondant. det kanske är ett jätteenkelt fel som jag bara missat? men jag skulle gärna vilja ha den hjälp jag kan få av någon kunnig där ute!

def add(): print('Skriv två siffror att Addera') A = int(input("Enter A: ")) B = int(input("ENter B: ")) c = (A+B) def sub(): print('Skriv två siffror att Subtrahera') A = int(input("Enter A: ")) B = int(input("Enter B: ")) c = (A-B) def Mul(): print('Skriv två siffror att Multiplicera') A = int(input("Enter A: ")) B = int(input("Enter B: ")) c = (A*B) def Div(): print("Skriv två siffror att Dividera") A = float(input("Enter A: ")) B = float(input("Enter B: ")) c = (A/B) print("1: ADDITION") print("2: SUBTRAKTION") print("3: MULTIPLIKATION") print("4: DIVITION") while True: CHOICE = int(input('Välj siffra utifrån vilken korrespondant : ')) if CHOICE == 1: def add(c): print('Adderar två nummer:') if CHOICE == 2: def sub(c): print('Subtraherar två nummer:') if CHOICE == 3: def Mul(c): print('Multiplicerar två nummer:') if CHOICE == 4: def Div(c): print ('Dividera två nummer')

Visa signatur

Moderkort: Msi P9X79 PRO CPU: Intel i7 3820 3,8 Ghz GPU: Msi Geforce GTX 680 Ram: Kingston Hyperx blu 2x8GB 1600Mhz Chassi: Coolermaster Storm Trooper PSU: be quite! Pure Power L8 630W 80+ Bronze SSD ASUS Raidr 240gb

Permalänk
Medlem

För att kalla på en funktion skriver du bara namnetpåfunktionen()

Det du gjort är att du deklarerat nya funktioner istället för att kalla på dom. Vad använder du c till?

Permalänk
Skrivet av usermane:

För att kalla på en funktion skriver du bara namnetpåfunktionen()

Det du gjort är att du deklarerat nya funktioner istället för att kalla på dom. Vad använder du c till?

Tjenare, skulle du kunna ge ett förslag? c är alltså variabeln i funktionen som jag vill lösa!

Visa signatur

Moderkort: Msi P9X79 PRO CPU: Intel i7 3820 3,8 Ghz GPU: Msi Geforce GTX 680 Ram: Kingston Hyperx blu 2x8GB 1600Mhz Chassi: Coolermaster Storm Trooper PSU: be quite! Pure Power L8 630W 80+ Bronze SSD ASUS Raidr 240gb

Permalänk
Hedersmedlem

1. Snygga till din trådrubrik så det är tydligare vad ditt problem handlar om.
2. Kolla upp hur man skapar python-funktioner och hur de används.

MVH
Moderator Shimonu

Permalänk
Avstängd

Kan du inte bara testa använda en online gratis Python felsökare?

Visa signatur

|CPU: Intel Core i5 3470 |GPU: MSI GTX-770|Mobo: MSI B75MA-P45|
|Case: lol dunno ._.|Ram: Kingston DDR3 HyperX 1600MHz 16GB|HDD: 3x Seagate 250 GB |PSU: 630W |

Permalänk
Medlem

if CHOICE == 1: def add(c): print('Adderar två nummer:')

blev nog en "def" för mkt bara

if CHOICE == 1: add(c) print('Adderar två nummer:')

funkar nog bättre

Visa signatur

Topkek

Permalänk
Medlem
Skrivet av Björnbom:

Tjenare, jag skulle vilja veta av någon kunnig programmerare vad som är felet på denna kod? Jag använder python 3.2.3 och är ganska ny inom detta, och har försökt mig på en kalkylator med ganska simpla funktioner. men ett fel uppstår som gör att jag inte kan skriva in min korrespondant. det kanske är ett jätteenkelt fel som jag bara missat? men jag skulle gärna vilja ha den hjälp jag kan få av någon kunnig där ute!

def add(): print('Skriv två siffror att Addera') A = int(input("Enter A: ")) B = int(input("ENter B: ")) c = (A+B) def sub(): print('Skriv två siffror att Subtrahera') A = int(input("Enter A: ")) B = int(input("Enter B: ")) c = (A-B) def Mul(): print('Skriv två siffror att Multiplicera') A = int(input("Enter A: ")) B = int(input("Enter B: ")) c = (A*B) def Div(): print("Skriv två siffror att Dividera") A = float(input("Enter A: ")) B = float(input("Enter B: ")) c = (A/B) print("1: ADDITION") print("2: SUBTRAKTION") print("3: MULTIPLIKATION") print("4: DIVITION") while True: CHOICE = int(input('Välj siffra utifrån vilken korrespondant : ')) if CHOICE == 1: def add(c): print('Adderar två nummer:') if CHOICE == 2: def sub(c): print('Subtraherar två nummer:') if CHOICE == 3: def Mul(c): print('Multiplicerar två nummer:') if CHOICE == 4: def Div(c): print ('Dividera två nummer')

Skrivet av Pye:

if CHOICE == 1: def add(c): print('Adderar två nummer:')

blev nog en "def" för mkt bara

if CHOICE == 1: add(c) print('Adderar två nummer:')

funkar nog bättre

Hej

Det räcker inte med att bara ta bort "def".
Just nu är följande fel.
"c" skickas i dina beräkningsfunktioner men de funktionerna tar inte emot någon variabel.
Resultatet "c" i beräkningsfunktionerna används inte. Du använder inte resultatet.

Jag gissar att du vill ha det ungefär så här:

def add(): print('Skriv tva siffror att Addera') A = int(input("Enter A: ")) B = int(input("ENter B: ")) return A+B def sub(): print('Skriv tva siffror att Subtrahera') A = int(input("Enter A: ")) B = int(input("Enter B: ")) return A-B def Mul(): print('Skriv tva siffror att Multiplicera') A = int(input("Enter A: ")) B = int(input("Enter B: ")) return A*B def Div(): print("Skriv tva siffror att Dividera") A = float(input("Enter A: ")) B = float(input("Enter B: ")) return A/B print("1: ADDITION") print("2: SUBTRAKTION") print("3: MULTIPLIKATION") print("4: DIVITION") while True: CHOICE = int(input('Valj siffra utifran vilken korrespondant : ')) if CHOICE == 1: c = add() print('Summan av dina tva tal ar: ' + str(c)) if CHOICE == 2: c = sub() print('Differansen mellan dina tva tal ar: ' + str(c)) if CHOICE == 3: c = Mul() print('Produkten av dina tva tal ar: ' + str(c)) if CHOICE == 4: c = Div() print('Kvoten av dina tva tal ar: ' + str(c))

Jag har ändrat så att beräkningsfunktionera skickar tillbaka resultatet och att resultatet skrivs ut.

Sen går koden att optimera mycket mera men det tar vi någon annan dag.

EDIT: 7.3 minuters hack Lite kortare och lite snyggare

#!/usr/bin/python3 import operator ops = {"+": operator.add, "-": operator.sub, "*": operator.mul, "/": operator.truediv } def main(): print("1: ADDITION") print("2: SUBTRAKTION") print("3: MULTIPLIKATION") print("4: DIVITION") while 1: choice = int(input('Valj operation genom att skriva en siffra: ')) a = int(input("Enter tal A: ")) b = int(input("Enter tal B: ")) if choice == 1: res = calc(a,b,'+') print('Summan av dina tva tal ar: ' + str(res)) if choice == 2: res = calc(a,b,'-') print('Differansen mellan dina tva tal ar: ' + str(res)) if choice == 3: res = calc(a,b,'*') print('Produkten av dina tva tal ar: ' + str(res)) if choice == 4: res = calc(a,b,'/') print('Kvoten av dina tva tal ar: ' + str(res)) def calc(a,b,op): return ops[op](a,b) if __name__ == '__main__': main()