我已经使用 Python 大约四个星期了,我喜欢它。我刚刚和我的实验室伙伴完成了一项实验室任务,然后我得到了一个随机灵感,为我男朋友非常痴迷的游戏创建了一个 Python 小程序:战锤。
我创建了一个运行良好的基本程序,但是对于高级程序,我遇到了一些麻烦。
高级程序的作用:
您输入您的游戏将获得多少分
逐段显示所有灰骑士总部、部队等的列表(首先是所有总部,然后是精英等)。
通过输入名称旁边的数字,您可以逐节选择所需的单位
该程序会在您进行时为您提供每个部分的小计。
该程序最后为您提供了所有部分的总和。
该程序会告诉您还有多少积分可以使用。
对于灰骑士的总部之一,您可以选择拥有最多 5 个模型,每个模型 40 点。在这个程序中,我想列出模型(使用 print 命令)然后让 if 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,这样它就不会弄乱程序的其余部分?