x = 5
def SsolGom():
k = 1
for i in range(1 , x+1):
k = k * i
print(SsolGom)
=功能SsolGom的奇怪值在0x00F1B660的Python給出階乘
120得出來的,但奇怪的價值就出來了......
x = 5
def SsolGom():
k = 1
for i in range(1 , x+1):
k = k * i
print(SsolGom)
=功能SsolGom的奇怪值在0x00F1B660的Python給出階乘
120得出來的,但奇怪的價值就出來了......
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
你錯過了括號。它應該是:
print(SsolGom())
要打印不帶括號的功能。使用和不使用括號調用函數在Python中給出了不同的結果。如果你不提供括號,Python認爲它是屬性而不是方法/函數。因此,你得到了結果
提供的功能return語句。
更新的代碼:
x=5
def SsolGom():
k=1
for i in range(1 , x+1):
k=k*i
return k
print(SsolGom())
您還沒有調用的函數....'打印(SsolGom())',你需要返回結果,例如'SsolGom()'的'return k'。但是你真的應該把'x'作爲參數傳遞給'def SsolGom(x):...'和'print(SsolGcom(5))'。你還需要修正你的格式'k = 1'被錯誤地縮進,python會抱怨。 – AChampion
爲什麼你甚至試圖寫一個階乘函數,如果1)你不知道如何調用它; 2)你讓它完全無用,因爲它不會讓它有任何參數(所以,你總是計算相同數字的階乘)?請先學習一些Python。 – ForceBru
函數在調用時應該返回一些東西。你的函數沒有返回任何東西。 –