2017-05-03 69 views
0
x = 5 

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

print(SsolGom) 

=功能SsolGom的奇怪值在0x00F1B660的Python给出阶乘

120得出来的,但奇怪的价值就出来了......

+2

您还没有调用的函数....'打印(SsolGom())',你需要返回结果,例如'SsolGom()'的'return k'。但是你真的应该把'x'作为参数传递给'def SsolGom(x):...'和'print(SsolGcom(5))'。你还需要修正你的格式'k = 1'被错误地缩进,python会抱怨。 – AChampion

+0

为什么你甚至试图写一个阶乘函数,如果1)你不知道如何调用它; 2)你让它完全无用,因为它不会让它有任何参数(所以,你总是计算相同数字的阶乘)?请先学习一些Python。 – ForceBru

+0

函数在调用时应该返回一些东西。你的函数没有返回任何东西。 –

回答

1

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

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替代:

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

print(factorial(5)) 

最后,这里是得到阶乘在Python的最简单的方法:

>>> from math import factorial 
>>> factorial(5) 
120 
0

你错过了括号。它应该是:

print(SsolGom()) 
0
  1. 要打印不带括号的功能。使用和不使用括号调用函数在Python中给出了不同的结果。如果你不提供括号,Python认为它是属性而不是方法/函数。因此,你得到了结果

  2. 提供的功能return语句。

更新的代码:

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

print(SsolGom())