私はテキストベースのダンジョンゲームを作成しようとしています。ちょうど楽しみと練習のために私は私のifブロックに従わないPythonに問題があります。奇妙なことは、最初に入力したときに機能したのですが、1日後には機能しませんでした。すべての条件が真であるかのように扱います。if文に従わないPython
choosing_race = True
while choosing_race == True:
print("options: Human, Elf, Dwarf")
p['race'] = input("Choose Race: ",)
print(p['race'], choosing_race)
if p['race'] == "Elf" or "elf":
print()
print("Elves are nimble, both in body and mind, but their form is frail. They gain Bonuses to Intelligence and Dexterity and a Penalty to Constitution")
print()
confirm_race = input("Are you an Elf? ",)
if confirm_race == "yes" or "Yes":
p['int_mod_r'] = 2
p['dex_mod_r'] = 2
p['con_mod_r'] = -2
choosing_race = False
elif confirm_race == "no" or "No":
print()
print("ok, select a different race")
else:
print()
print("Could not confirm, try again")
P [レース]入力は、微細示しているが、私は何も(例えば、アヒル)を入力することができると私はエルフを入力したかのように作用します。私がconfirm_raceに頼むとき、それはいつもイエスを返す。私はそこに入力ミスをしているに違いないと思うが、見つけられない。私はすべての私のindentingをredidしかし、まだ幸運。私は機能を使って再構成しようとしています。多分それが役に立ちます。その間に私は何がうまくいかなかったのかを知りたいので、将来それを防ぐことができます。ありがとう。あなたはこの場合
if p['race'] == "Elf" or "elf":
のようなラインから期待行動を取得されていません
: 'is_a_valid_choice = ['human'、 'elf'、 'dwarf']のlower()[ – Alexander