2017-05-03 67 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())