首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python给出了阶乘的奇怪值

Python给出了阶乘的奇怪值
EN

Stack Overflow用户
提问于 2017-05-03 21:03:22
回答 3查看 55关注 0票数 0
代码语言:javascript
运行
复制
x = 5

def SsolGom():
  k = 1
    for i in range( 1 , x+1 ):
       k = k * i

print(SsolGom)

= 0x00F1B660处的函数SsolGom

必须得到120,但出现了奇怪的值……

EN

回答 3

Stack Overflow用户

发布于 2017-05-03 21:06:48

SsolGom是一个函数,SsolGom()是该函数返回的值。在数学上类似:sin是一个函数,sin(0)是一个数字。

代码语言:javascript
运行
复制
x = 5

def SsolGom():
    k = 1
    for i in range( 1 , x+1 ):
       k = k * i
    return k

print(SsolGom())
# 120

你需要在你的函数中有一个正确的缩进,并且你需要返回值。否则,SsolGom()将为None

请注意,x可能不应该是全局变量。否则,您的函数可能会被return 120替换

代码语言:javascript
运行
复制
def factorial(x):
    k = 1
    for i in range(x):
       k = k * (i + 1)
    return k

print(factorial(5))

最后,下面是在Python中获取阶乘的最简单方法:

代码语言:javascript
运行
复制
>>> from math import factorial
>>> factorial(5)
120
票数 1
EN

Stack Overflow用户

发布于 2017-05-03 21:06:57

你漏掉了括号。它应该是:

代码语言:javascript
运行
复制
print(SsolGom())
票数 0
EN

Stack Overflow用户

发布于 2017-05-03 21:26:13

  1. 您正在打印没有括号的函数。在Python中,调用带括号和不带括号的函数会产生不同的结果。如果不提供括号,Python会将其视为属性,而不是方法/函数。因此,您将获得
  2. 在函数中提供返回语句结果。

更新的代码:

代码语言:javascript
运行
复制
x=5
def SsolGom():
    k=1
    for i in range( 1 , x+1 ):
        k=k*i
    return k

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

https://stackoverflow.com/questions/43760875

复制
相关文章

相似问题

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