是新來的Python - 都做在PHP,JavaScript的一些腳本,但我不是一個程序員(雖然是一個高科技的作家有經驗記錄的API等,所以相當廣泛的「被動」的編程懂得):有什麼方法可以將函數存儲在變量中,並創建可變容量函數的列表?
在此處執行以下步驟:https://en.wikibooks.org/wiki/A_Beginner的_Python_Tutorial/Functions。具體見鏈接re:簡單的計算器程序
想弄清楚如果我可以通過以列表形式存儲所有組件的不同冗餘計算,然後有一個非常簡單的通用方法來處理任何計算請求,通過使用用戶的菜單選項作爲列表中的索引。我假設以這種方式構建事物是一種很好的形式,但不知道!原來的教程顯然更可讀,但將意味着同樣的錯誤檢查就需要重複做了每個小的「如果」塊...
在任何情況下,雖然,我無法弄清楚如何將實際計算作爲元素存儲在列表中。那可能嗎?這就是我所得到的......我在那裏設法封裝和調用列表中的一些細節,但仍需爲每個單獨的計算執行一系列「if」語句。
(很抱歉,如果這些問題都是基本的。我做了一堆沒有找到明確的文件重新搜索的:這裏是你可以和不能以列表的形式捕捉一切)這樣 - 我的鏈接代碼變化:
#simple calculator program
# Prompts for possible calculations
add = ["Add this: ", "to this: ", "+"]
subtract = ["Subtract this: ", "from this: ", "-"]
multiply = ["Multiply this: ", "by this: ", "*"]
divide = ["Divide this: ", "by this: ", "/"]
# List of possible calculations
calcPrompts = [add, subtract, multiply, divide]
def promptEntries(Arg):
try:
op1 = int(input(Arg[0]))
op2 = int(input(Arg[1]))
operator = (Arg[2])
return op1, op2, operator
except:
print("Invalid entry. Please try again.")
choice = 0
#This variable tells the loop whether it should loop or not.
# 1 means loop. Anything else means don't loop.
loop = 1
while loop == 1:
#Display the available options
print ("\n\nCalculator options are:")
print (" ")
print ("1) Addition")
print ("2) Subtraction")
print ("3) Multiplication")
print ("4) Division")
print ("5) Quit calculator.py")
print (" ")
try:
choice = int(input("Choose your option: "))
choice = choice - 1
op1, op2, operator = promptEntries(calcPrompts[choice])
print(op1, operator, op2, "=", end=" ")
if choice == 0:
print(op1 + op2)
elif choice == 1:
print(op1 - op2)
elif choice == 2:
print(op1 * op2)
elif choice == 3:
if op2 != 0:
print(op1/op2)
else:
print("Division by zero is invalid, please try again.")
elif choice == 4:
loop = 0
print ("Thank you for using calculator.py")
except:
print("invalid entry, please try again.")
感謝代碼Pynchia。非常感謝最初的信息:導入操作員..模塊(?)...以及作爲結果創建列表的能力。除此之外......我還不太熟悉的沒有註釋的代碼。將嘗試破譯它們並找出菜單消失的地方等等! :-)其中,彙總的語法對我來說是目前所不具備的:對於我來說,枚舉(f)中的樂趣: print(「{}){}」.format(i + 1,fun .__ name__)).. 。但我很欣賞這篇文章 - 思考的食物! : - )...很多學習 – Margarita
不客氣。請善良,接受答案和/或upvote那些你得到 – Pynchia
嗨Pynchia,讓我看看第一,如果我可以做一個,或兩個答案的組合在我的代碼練習,在這種情況下,我會很樂意接受回答/給予好評。 (可能沒有時間去幾天)。祝你有個美好的夜晚。 – Margarita