一個數的階乘是從 1 到該數的所有整數的乘積。
例如,6 的階乘是 1 2 3 4 5*6 = 720。沒有為負數定義階乘,零的階乘是 1,0!= 1。
def recur_factorial(n):
if n == 1:
return n
else:
return n*recur_factorial(n-1)
num = 7
# check if the number is negative
if num < 0:
print("Sorry, factorial does not exist for negative numbers")
elif num == 0:
print("The factorial of 0 is 1")
else:
print("The factorial of", num, "is", recur_factorial(num))
uj5u.com熱心網友回復:
我想知道如何閱讀條目和呼叫函式的幫助
為此,您可以在函式下方添加以下代碼:
# main program
method = {
"IV": add_node,
"IA": add_edge,
"RV": delete_node,
"RA": delete_edge
}
numinputlines = int(input())
for _ in range(numinputlines):
instruction, *rest = input().split()
if len(rest) == 3: # There is a cost:
rest[-1] = int(rest[-1])
method[instruction](*rest)
該method詞典能夠幫助到2個字母的代碼轉換到需要被呼叫的方法。由于這些方法的引數都按相同的順序排列,因此您可以將它們捕獲在 list 中rest,并在傳遞引數時“解壓縮”該串列。只有一件特別的事情需要照顧。兩個方法獲取一個cost引數,并且它必須是數字型別。由于輸入被讀取為字串,因此您需要將該成本字串轉換為數字。該if宣告處理了這種情況。
這應該可以回答你的問題,但它并沒有完成練習。您仍然需要除錯您的代碼。例如,目前您的代碼將在您提供的示例輸入上引發例外——頂點“B”在IA B A 1添加之前被參考IV B。
此外,您還需要添加代碼以生成輸出。
但是由于您的問題是關于捕獲輸入和呼叫函式,所以我將其余的留給您解決。
uj5u.com熱心網友回復:
如何在 Python 中計算整數的階乘?請注意,階乘函式僅針對正整數定義;因此,您還應該檢查 n >= 0 和isinstance(n, int). 否則,分別提高 aValueError或 a TypeError。
def factorial(n):
if(not isinstance(n, int) or n < 0):
raise ValueError("Invalid argument")
if (n==1 or n==0):
return 1
else:
return (n * factorial(n - 1))
# Driver Code
num = int(input("Please enter a number"))
print("Factorial : ",factorial(num))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/346026.html
標籤:Python 算法 python-2.7 蟒蛇请求
上一篇:python:在字典串列中查找
