Ir para conteúdo
Fórum Script Brasil
  • 0

[AJUDA] - Rolar dados


Rodrigo Gama

Pergunta

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:

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.

Editado por Rodrigo Gama
Link 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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...