簡體   English   中英

Python,根據用戶輸入再次調用函數

[英]Python, Calling a function again based on input from user

我嘗試在用戶輸入“ y”后返回take_turn函數中的roll_die函數,然后繼續向turn_score變量添加值。 誰能看到我在做什么錯? 預先感謝,這是到目前為止的代碼:

import random
def roll_die():
    roll_value = random.randint(1,6)
    return roll_value

def take_turn(is_human_turn):
    roll_die()
    roll = roll_die()
    turn_score = 0
    turn_score = turn_score + roll

    if is_human_turn:
        print("total so far:",turn_score)
        input("roll again? y/n ")
        if input == "y":
            roll_die()
        # Trying to get back to the roll_die func w/in take_turn func
        #  and continue adding value to turn_score

    return turn_score

take_turn(True)

我建議您:

  1. take_turn()函數的take_turn()行收集到turn_score = roll_die()
  2. 使用while循環再次滾動,直到用戶輸入與“ y”不同的值
  3. roll_die()返回的值添加到turn_score
  4. 使用take_turn()返回的值take_turn() (否則不返回任何內容)

這是我的完整代碼解決方案:

import random

def roll_die():
    roll_value = random.randint(1,6)
    return roll_value

def take_turn(is_human_turn):
    turn_score = roll_die()
    while is_human_turn:
        print("total so far:", turn_score)
        if input("roll again? y/n ") == "y":
            turn_score += roll_die()
        else:
            is_human_turn = False
    return turn_score

result = take_turn(True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM