Sou bem novato no aprendizado do Python, e estou estudando do começo, mas não estou conseguindo entender o erro que meu código está produzindo. Tecnicamente, ele não produz nenhum erro, mas o comportamento dele é estranho. Ele me pede o input, mas depois ele pára de funcionar. Aparentemente, ele apenas me pede outro input. Mesmo que eu digite 0, ele apenas continua me pedindo. A função de demonstrar as opções também não surge no terminal. Já tentei passar o retorno da função, assim como as condicionais, para string, mas não adiantaram nada. Tentei também simplificar o código, rodar funções separadas do código, sem sucesso.
Por exemplo, quando eu tento rodar apenas a função d4, o terminal não retorna nada:
import random
def d4():
return print("resultado do d4: " + str(random.randint(1, 3)))
d4
Já quando eu tento rodar apenas o código presente dentro da função d4, ele funciona normalmente.
Entretanto, se eu tento alterar a função d4 para me retornar apenas a string, e no corpo principal do script eu mandar ele dar print() na função, ocorre isso:
import random
def d4():
return "resultado do d4: " + str(random.randint(1, 3))
print(d4)
RETORNO: <function d4 at 0xb71afdf4>
Eu estou usando uma máquina virtual Linux Mint Cinamon rodando no VMware Workstation 12 Player (32bits).
Abaixo o código fonte completo:
import random
def d4():
return print("resultado do d4: " + str(random.randint(1, 3)))
def d6():
return print("resultado do d6: " + str(random.randint(1, 6)))
def d8():
return print("resultado do d8: " + str(random.randint(1, 8)))
def d10():
return print("resultado do d10: " + str(random.randint(0, 9)))
def d12():
return print("resultado do d12: " + str(random.randint(1, 12)))
def d20():
return print("resultado do d20: " + str(random.randint(1, 20)))
def d100():
return print("resultado do d100: " + str(random.randint(1, 100)))
def escolha():
print("Digite sua escolha: ")
print("1: d4")
print("2: d6")
print("3: d8")
print("4: d10")
print("5: d12")
print("6: d20")
print("7: d100")
return input()
choise = escolha
while choise != "0":
if choise == "1": d4
if choise == "2": d6
if choise == "3": d8
if choise == "4": d10
if choise == "5": d12
if choise == "6": d20
if choise == "7": d100
if choise == "0": break
choise = escolha
Agradeço qualquer ajuda para me ajudar com esse problema.
Pergunta
Rodrigo Gama
Olá.
Sou bem novato no aprendizado do Python, e estou estudando do começo, mas não estou conseguindo entender o erro que meu código está produzindo. Tecnicamente, ele não produz nenhum erro, mas o comportamento dele é estranho. Ele me pede o input, mas depois ele pára de funcionar. Aparentemente, ele apenas me pede outro input. Mesmo que eu digite 0, ele apenas continua me pedindo. A função de demonstrar as opções também não surge no terminal. Já tentei passar o retorno da função, assim como as condicionais, para string, mas não adiantaram nada. Tentei também simplificar o código, rodar funções separadas do código, sem sucesso.
Por exemplo, quando eu tento rodar apenas a função d4, o terminal não retorna nada:
Já quando eu tento rodar apenas o código presente dentro da função d4, ele funciona normalmente.
Entretanto, se eu tento alterar a função d4 para me retornar apenas a string, e no corpo principal do script eu mandar ele dar print() na função, ocorre isso:
Eu estou usando uma máquina virtual Linux Mint Cinamon rodando no VMware Workstation 12 Player (32bits).
Abaixo o código fonte completo:
Agradeço qualquer ajuda para me ajudar com esse problema.
Editado por Rodrigo GamaLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.