if语句是如何工作的?

4

我正在用Python制作一个基于文本的俄罗斯轮盘游戏,但是从我的代码中可以看到,我远没有完成:

#!/usr/bin/env python
print("The maximum number of bullets is 3")
bulletcounter = input("How many bullets do you want your gun to have?")
print(bulletcounter, "bullets")
paname = input("Enter Player 1's Name: ")
pbname = input("Enter Player 2's Name: ")
print(paname.capitalize(), "Vs.", pbname.capitalize())
if bulletcounter == 1:
    bulletcount = 0
    print(bulletcount)
    bulletaloc = random.randint(1, 6)
    while bulletaloc != bulletcount:
        bulletcount += 1

出于某些原因,即使有人在bulletcounter中输入了1,它也不会触发if bulletcounter == 1语句。我该如何让它触发if语句呢?


什么特定的行为让你认为if语句没有被执行? - paxdiablo
1个回答

4

请将panamepbname变量使用raw_input函数来获取输入,记得在文件顶部使用import random导入该模块。对于bulletcounter变量最好也使用int(raw_input("How many..."))来获取输入,而不是使用 input,因为后者可以用于执行任意Python代码。

另外,在使用env命令调用Python解释器时,值得检查一下你所使用的Python版本。如果你在命令行中运行:

/usr/bin/env python -V

如果您预期使用Python 3但现在获取的是"Python 2.x.y",考虑将第一行更改为调用Python 3解释器。上面提到的建议假设您正在使用Python 2。


1
那不是取决于Python的版本吗? 我记得raw_input在Python 3中被删除了(并且input被更改以替换它,但不执行其内容)? - paxdiablo
@paxdiablo,好的,但是代码以 env python 开头,这意味着我们无法轻易地看到使用的Python版本。虽然我们可能会假设其意图是为Python 3设计的,但如果OP在环境中安装了两个版本的Python,并且Python 2恰好在路径上更靠前会怎么样?当我建议所做的更改时,它可以在Python 2上运行。 - imm
imm,我并不是说你的答案是“错误”的,只是你似乎在做出一些假设。在答案中注明这一点会很有价值。 - paxdiablo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接