私はPython Programming Absolute Beginnersの第5章の課題を解決しようとしていますが、いくつか問題があるようです。私が取り組んでいるプログラムは、Character属性のスキルポイント配布プログラムを辞書で作っています。目的は、30ポイントを配布できる4つのスキルを持つプログラムを作ることです。追加したり、削除したり、すべてを表示することができます。私がプログラムを立ち上げると、ポイントは、私が意図するものではなく、ただ一つではなく、すべてのスキルに分配されます。また、毎回私の "else"オプションのためのメッセージがあります。私はどちらも望んでいません。すべてのことを投稿して申し訳ありません、私はちょうどこれに新しいですし、コード内でどこが乱れたのかわかりません。ありがとうございました!Pythonディクショナリを追加する
# Hero Attribute Assigner
# My attempt
name = ""
attr = {"STRENGTH":0, "DEXTERITY":0, "WISDOM":0, "HEALTH":0}
totalPoints = 30
for attrName in attr:
attrPoints = attr[attrName]
userInput = None
while userInput != "5":
userInput = input \
("""
Character Creator
1 - Name Character
2 - Assign Attribute Points
3 - Remove Attribute Points
4 - Exit
""")
# Name Character
if userInput == "1":
name = str(input("\nCharacter Name: "))
print("\nYour character's name is now: " + name)
input("\nPress 'Enter' to return to menu.")
# Assign Points
if userInput == "2":
# What attribute?
print("\n" + name + "'s Attribute Stats are:\n")
for attrName in attr:
print(attrName, ":\t", str(attrPoints))
print("UNUSED POINTS:" + "\t" + str(totalPoints))
changeAttr = input("\nWhat attribute would you like to add points to? ").upper()
# How many points to add?
if changeAttr in attr:
changePoints = int(input("How many points would you like to add? "))
attr[changeAttr] += changePoints
totalPoints -= changePoints
print("\n" + name + "'s Attribute Stats are now:\n")
for attrName in attr:
print(attrName, ":\t", str(attrPoints))
print("UNUSED POINTS:" + "\t " + str(totalPoints))
else:
print("\nThat is not a valid choice.")
# Remove Points
if userInput == "3":
# What attribute?
print("\n" + name + "'s Attribute Stats are:\n")
for attrName in attr:
print(attrName, ":\t", str(attrPoints))
print("UNUSED POINTS:" + "\t" + str(totalPoints))
changeAttr = input("\nWhat attribute would you like to remove points from? ").upper()
# How many points to remove?
if changeAttr in attr:
changePoints = int(input("How many points would you like to remove? "))
attr[changeAttr] -= changePoints
totalPoints += changePoints
print("\n" + name + "'s Attribute Stats are now:\n")
for attrName in attr:
print(attrName, ":\t", str(attrPoints))
print("UNUSED POINTS:" + "\t " + str(totalPoints))
else:
print("\nThat is not a valid amount.")
# Exit
elif userInput == "4":
break
# Invalid Choice in Menu
else:
print("\nInvalid choice...")
input("\nPress 'Enter' to exit.")
'if/elif/elif/elif/else'が必要ですが、' if。 if。 if/elif/else'となります。これにより、「無効な選択」メッセージが修正されます。 – TessellatingHeckler