首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么没有定义这些函数,这是否有效?我如何调试这个?

为什么没有定义这些函数,这是否有效?我如何调试这个?
EN

Stack Overflow用户
提问于 2022-01-19 23:57:33
回答 1查看 136关注 0票数 -2

我需要帮助解决这个问题:

在roll_dice中实现hog.py函数。它有两个参数:一个名为num_rolls的正整数,表示要滚动的骰子数和一个骰子函数。它返回的点数,通过滚动骰子的次数在一个回合:结果之和或1(母猪悲伤)。

母猪伤心的规则:

播种悲伤。如果任何骰子结果为1,则当前玩家的回合得分为1。

要获得骰子点名的单个结果,请调用dice()。您应该在num_rolls的主体中精确地调用dice()。记住,即使母猪悲伤发生在滚动过程中,也要准确地调用dice() num_rolls次数。通过这种方式,您可以正确地模拟将所有骰子一起滚动。

代码语言:javascript
复制
from random import randint

def roll_dice():
    final_sum = 0
    numrolls = 0
    while numrolls > 0 and numrolls <=10:
         final_sum= numrolls.dice()
         numrolls+=1
         return numrolls
         if numrolls.dice==1:
             numrolls=1
             print("SOW SAD, score for this turn is 1")
             final_sum+=numrolls
             return final_sum
    print(final_sum)
    
    def dice():
         value = 0
         while value > 0:
             return randint(1,6)
             return dice
EN

回答 1

Stack Overflow用户

发布于 2022-01-20 06:21:47

在hog.py中实现了roll_dice函数。它有两个参数:一个名为num_rolls的正整数,表示要滚动的骰子数和一个骰子函数。

按照指示,您的函数需要参数。

,它返回在一个回合中滚动骰子次数所获得的点数。

假设您使用的是更新版本的Python3,则可以将类型提示添加到函数中

或结果之和或1.在num_rolls的主体中调用dice()正好是roll_dice的时间。记住,即使母猪悲伤发生在滚动过程中,也要准确地调用dice() num_rolls次数。

列表理解可以用于运行函数以滚动多个骰子,然后您可以检查其中的骰子或与列表之和。

代码语言:javascript
复制
import random 

def dice() -> int:
    return random.randint(1, 6)  # assumed to be 6 sided die 

def roll_dice(num_rolls, dice_fn) -> int:
    # roll a number of times, and store the results 
    rolls = [dice_fn() for _ in range(num_rolls)] 
    # if there's a 1, that's the score, else add all roll values 
    return 1 if any(r == 1 for r in rolls) else sum(rolls) 

if __name__ == "__main__":
    num_rolls = input("rolls: ") 
    # pass in the dice function, don't call it 
    print(roll_dice(int(num_rolls), dice)) 

与你的尝试相比..。

理想情况下,

  • 函数不应该嵌套,除非您有充分的理由。这是一种高级的topic
  • return语句,用于将值返回到其他地方,在这些语句之后,任何内容都不会在相同的function
  • Types问题中运行。函数名不应由数字引用,反之亦然。在Python中,这是一个很难处理的问题,with
  • Dot-notation是为类和模块保留的。没有定义任何类。这里唯一的模块是导入的random
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70779248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档