初学Python编写概率函数遇编译错误,请求排查解决
问题分析与解决
你的代码存在两处问题,其中一处是导致编译失败的直接原因:
- 括号不匹配:
comb函数的return语句末尾少了一个右括号,原代码return (fact(n)/(fact(r)*fact(n-r))只有一个左括号,缺少对应的闭合右括号,这是语法错误的根源。 - 运算符误用:Python中
^是按位异或运算符,不是幂运算符号,计算p的k次方需要使用**。
修正后的完整代码:
def fact(num): #A bit of recursion for a factorial if num == 1: return 1 else: return num * fact(num-1) def comb(n, r): #Formula for probability combinations return (fact(n)/(fact(r)*fact(n-r))) def binom(t, k, p): #This is where the error occurs return (comb(t, k)*(p**k)*((1-p)**(t-k))) print(binom(int(input("Enter n")), int(input("Enter r")), float(input("Enter p"))))
内容的提问来源于stack exchange,提问作者b_rizz8
相关产品推荐
相关产品推荐

