我大約四周進入Python,我喜歡它。我剛剛和我的實驗室合作伙伴完成了一項實驗室任務,然後我隨即獲得了靈感,爲我的男朋友大量癡迷的遊戲創建了一個小型Python程序:Warhammer。模塊內部如果在Python中的其他語句?
我創建了一個基本的工作得很好,但對於高級程序,我遇到了一些麻煩。
先進的程序在做什麼:
你輸入你的遊戲將有多少個是
顯示所有灰色騎士總部,部隊,由節等節(首先在總部的列表,然後是精英等)。
逐節你選擇要通過輸入名稱
該方案爲您提供了一個子總每一節的,你去旁邊的數字哪個單位。
該程序爲您提供了最後所有部分的總和。
程序會告訴您有多少點還有待使用。
對於Gray Knights總部的其中一個,您可以選擇最多5個模型,每個模型40點。在這個程序中,我想列出模型(使用print命令),然後讓elif語句對應每個數字。這裏是我的代碼,我遇到的麻煩的部分:
def inputHQ():
print
print
print 'Select your HQ by entering the number beside their name. Example "1", "2", "3".'
print
print '1. Lord Kaldor Draiog - 275 points'
print '2. Grand Master Mordrak - 200 points'
print '3. Ghost Knights - 40 points per model'
greyKnightHQ = input('What HQ do you want? Use the number beside the modle, no periods: ')
if greyKnightHQ == 1:
greyKnightHQ = 275
elif greyKnightHQ == 2:
greyKnightHQ = 200
elif greyKnightHQ == 3:
greyKnightGhostKnight = input('How many Ghost Knights would you like? Up to 5: ')
def calcGreyKnightGhostKnight():
greyKnightGhostKnightTotal = greyKnightGhostKnight * 40
greyKnightHQ = greyKnightGhostKnightTotal
return greyKnightHQ
當我在Geany運行它,我得到這個錯誤:
Traceback (most recent call last):
File "warhammer-point-calculator-advanced.py", line 96, in <module>
main()
File "warhammer-point-calculator-advanced.py", line 13, in main
greyKnightHQ = inputHQ()
File "warhammer-point-calculator-advanced.py", line 48, in inputHQ
greyKnightHQ = greyKnightGhostKnightTotal
NameError: global name 'greyKnightGhostKnightTotal' is not defined
這裏是我在文檔的頂部的那些定義功能:
greyKnightHQ = inputHQ()
greyKnightGhostKnightTotal = calcGreyKnightGhostKnight(greyKnightHQ)
我主要的兩個問題是:1。 你能在一個Python的if else語句中定義的模塊?如果是這樣,我做對了嗎? 2.我是否也可以在if else語句之外創建calcGreyKnightGhostKnightTotal模塊,並且在需要時調用它,否則它會將其乘以0以便它不會弄亂程序的其餘部分?
我沒有看到你在你的函數中創建或導入一個模塊,而是一個函數。你可以在函數中定義函數,但我認爲你不需要在這裏做。特別是因爲你從來不稱它。一個函數創建一個新的作用域(名稱空間),並且gKGKT變量只存在於其中。因此它不存在於外部函數中。但是,真的,這是學習課程的好機會。 – Keith
好的,謝謝。我會看看課程。 (: – Chelsea