2015-03-23 2 views
-1

Я не уверен, как включить функцию roll() в playRound(). Предполагается, что playRound имитирует реальный раунд крэпса. Я должен иметь функцию roll(), как и весь другой код. Единственным сегментом, который я могу редактировать, является функция playRound().Python 3 craps simulation

from random import (random, randint) 

def roll(): 
    return randint(1, 6), randint(1, 6) 

def playRound(): 


def main(): 
    print("Craps simulation") 
    while True: 
     response = input("Enter an integer value > 0 ") 
     if response == "": 
      print("Thank you for your business!") 
      break 

     try: 
      num_trials = int(response) 
      if num_trials < 1: 
       raise ValueError("Input must be >= 1 ") 

      roundsPlayed = 0 
      wins = 0 
      while roundsPlayed < num_trials: 
       roundsPlayed += 1 
       if playRound(): 
        wins += 1 

      print("Probability of winning is {0:>0.2%}".format(wins/num_trials )) 

     except ValueError as err: 
      print(err) 
     except TypeError as err: 
      print(err) 

main() 
+0

пытались ли вы 'd1, d2 = рулон()' –

ответ

2

Вы можете вызвать любую функцию, пока она находится в области видимости. В Python каждая функция, определенная на внешнем уровне области видимости, может быть вызвана из любого места внутри скрипта (или пространства имен модулей, если вы используете его как таковое). Это называется глобальным охватом.

Когда у вас есть функция, которая возвращает несколько значений, Python позволяет вам легко их захватывать различными переменными, используя запятые для их разделения.

Вот небольшой пример вызова roll внутри playRound и хранения возвращаемых значений двух переменных:

def playRound(): 
    roll1, roll2 = roll() 
+0

Вау спасибо вам обоим. Вы, конечно, спасли мою жизнь. Очень простое исправление. Я немного смущен. Я пропустил это. – Landon