首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python彩票概率:未定义名称

Python彩票概率:未定义名称
EN

Stack Overflow用户
提问于 2022-07-16 21:11:34
回答 1查看 124关注 0票数 1

请原谅我初学者的错误:)我有一项任务要求我找出用户输入的总彩票和抽奖球的概率。我的代码也很可能有其他错误,但我无法通过错误代码,即n是没有定义的。这就是我所拥有的:

代码语言:javascript
复制
import math

def winning(n, p):
    """Find the probability of guessing all balls correct"""
    a = math.factorial(n)/(math.factorial(n - p) * math.factorial(p))
    b = 1/a
    return b
win = winning(n, p)

def main():
    n = int(input("Enter the total number of lottery balls:", ))
    # number of balls
    p = int(input("Enter the number of the drawn balls:", ))
    # number of balls drawn
    if p > n:
        print("At most the total number of balls can be drawn.")
    if n < 1:
        print("The number of balls must be a positive number.")
    else:
        print("The probability of guessing all", p, "balls correctly is", win)

main()

另外,math.factorial()是一种在Python中使用阶乘的工作方式,还是应该使用其他东西?

EN

回答 1

Stack Overflow用户

发布于 2022-07-16 21:28:35

你在打电话给赢(n,p),而事先没有定义n或p。正如Tim提到的,将调用移动到Tim(n,p)到main()定义之后,就意味着在用户声明n和p之后调用它。

例如,以下内容会产生错误:

代码语言:javascript
复制
def sum(a, b):
  return (a + b)

sum(a, b)

a = int(input('Enter 1st number: '))
b = int(input('Enter 2nd number: '))

鉴于以下情况并非如此:

代码语言:javascript
复制
def sum(a, b):
  return (a + b)

a = int(input('Enter 1st number: '))
b = int(input('Enter 2nd number: '))

sum(a, b)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73007682

复制
相关文章

相似问题

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