where is error? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

where is error?

print("BEM VINDO AO SISTEMA OPERACIONAL JV\n") def soma(x,y): return x+y def subtracao(x,y): return x-y def multiplicacao(x,y): if (x == 1): return y elif (x== 0): return 0 elif (x < 0): return -multiplicacao(-x, y) else: return y + multiplicacao(x - 1, y) def divisao(x,y): if (y==0): print("Syntax error") quociente = 0 c = 0 d = 0 while(d+y) <= x: c = c+1 d = d+y return c def resto (x,y): resto =0 quociente=0 while True: if x<y: resto=x break else: x-=y quociente+=1 return resto def potencia(x,y): i=0 acum=1 while(i<y): i = i+1 acum = multiplicacao(acum,x) return acum while True: print("Entre com a opcao desejada:") print ("1. Soma") print ("2. Subtracao") print ("3. Mutiplicacao") print ("4. Divisao") print ("5. Resto") print ("6. Potencia") print ("7. Sair") break opcao=int(input("Escolha a opcao desejada:")) if (opcao>=7): exit(7) num1=int(input("Digite o primeiro numero:")) num2=int(input("Digite o segundo numero:")) 5 if (opcao==1): print(soma(num1,num2)) if (opcao==2): print(subtracao(num1,num2)) if (opcao==3): print(multiplicacao(num1,num2)) if (opcao==4): print(divisao(num1,num2)) if (opcao==5): print(resto(num1,num2)) if (opcao==6): print(potencia(num1,num2))

1st Oct 2016, 5:41 PM
john
6 Answers
0
cara, quando vc define a função de multiplicação vc usa ela mesma como retorno, o que não é possível. Vc poderia fazer assim: def multiplicacao(x, y): return x*y Essa função faz basicamente a mesma coisa que a que vc escreveu, só que em apenas duas linhas
1st Oct 2016, 5:47 PM
Serginho2750
Serginho2750 - avatar
0
mais o meu intuito é usar apenas operadores + e -
1st Oct 2016, 5:55 PM
john
0
sem *,/,% ,**
1st Oct 2016, 5:55 PM
john
0
O erro que é quando vc coloca return -multiplicacao(x-1, y) e return y + multiplicacao(x-1, y) pq vc tá usando uma variável que não foi definida, pois ela não retorna nada. Se vc fizesse algo tipo: def retorna(x): return x e vc igualasse uma variável à execução dessa função x = retorna(5) então x seria igual a 5 Só que ali vc tá usando a execução da função como variável antes de ela ter o retorno definido
1st Oct 2016, 6:03 PM
Serginho2750
Serginho2750 - avatar
0
o engraçado é q no PC roda
1st Oct 2016, 6:18 PM
john
0
e no cel não
1st Oct 2016, 6:18 PM
john