Validation Python3输入和if语句
我在一个输入问题上遇到了一些麻烦,这个问题应该允许玩家从5场比赛中选择一场。我使用了以下代码Validation Python3输入和if语句,validation,if-statement,python-3.x,user-input,Validation,If Statement,Python 3.x,User Input,我在一个输入问题上遇到了一些麻烦,这个问题应该允许玩家从5场比赛中选择一场。我使用了以下代码 def racechoice(): players.race = input('After you get a chance to think, you choose to be...') #Here race is chosen if players.race == "dwarf" or "Dwarf": #Race starting stats players.rac
def racechoice():
players.race = input('After you get a chance to think, you choose to be...') #Here race is chosen
if players.race == "dwarf" or "Dwarf": #Race starting stats
players.race = "Dwarf"
players.level = 1
players.strength = 12
players.agility = 6
players.inteligence = 8
players.vitality = 14
elif players.race == "Orc" or "orc":
players.race = "Orc"
players.level = 1
players.strength = 14
players.agility = 10
players.inteligence = 4
players.vitality = 12
elif players.race == "elf" or "Elf":
players.level = 1
players.race = "Elf"
players.strength = 8
players.agility = 13
players.inteligence = 12
players.vitality = 7
elif players.race == "Human" or "human":
players.level = 1
players.race = "Human"
players.strength = 10
players.agility = 10
players.inteligence = 10
players.vitality = 10
elif players.race == "gnome" or "Gnome":
players.race = "Gnome"
players.strength = 5
players.agility = 11
players.intelligence = 17
players.vitality = 7
调用以显示玩家的统计信息时:
def stats():
print(players.name)
print(players.race)
print("Level: "+ str(players.level) +" Strength: "+ str(players.strength) +" Agility: " + str(players.agility) +" Inteligence: "+ str(players.inteligence) +" Vitality: "+ str(players.vitality))
无论玩家选择什么,它都会以矮人状态返回。我是Python新手,我想知道,我没有正确使用if/elif语句吗?
在你有机会思考之后,你选择成为……兽人
益赛普
矮子
等级:1力量:12敏捷:6智慧:8活力:14有问题,你应该做:
if players.race == "dwarf" or "players.race == Dwarf":
但更好的是,将您的条件更改为:
elif players.race.lower() == "orc":
还建议您使用类来封装功能,例如:
class Player(object):
def __init__(self, race, level, strength, agility, inteligence, vitality):
self.race = race
self.level = level
self.strength = strength
self.agility = agility
self.inteligence = inteligence
self.vitality = vitality
player = Player('Dwarf', 1, 12, 6, 8, 14)
然后,您的racechoice
功能将如下所示:
def racechoice():
race = input('After you get a chance to think, you choose to be...')
if race.lower() == 'dwarf':
player = Player('Dwarf', 1, 12, 6, 8, 14)
elif race.lower() == 'orc':
player = Player('Orc', 1, 14, 10, 4, 12)
...
return player
您不能以那种方式使用
或。所有if/elif
语句的格式应为:
if players.race == "dwarf" or players.race == "Dwarf":
“Dwarf”
本身被Python认为是True
,而空字符串“
被认为是False
,因此您的第一个if
总是成功的。我更改了它,但获得了相同的输出。仍然在获取矮人种族和统计数据。如何调用函数racechoice
?我使用racechoice()调用它,谢谢!最后一件事,对于return player,它到底能做什么?@IanMoon,这允许您在主代码中调用这样的函数:player=racechoice()
,该函数起作用,并获得了正确的输出。在你有机会思考之后,你选择成为……兽人Ecep兽人等级:1力量:14敏捷:10智慧:4活力:12这与理解如何使用有效选项列表处理用户输入有关。游戏只是你工作的环境,但它是你需要理解的概念。如果你要使用标签,请查看可用的标签,并阅读它们在本网站上的含义,这是为专业和“爱好者”程序员准备的。RPG是专业程序员中使用最广泛的语言之一,在幕后运行核心业务应用程序的公司比大多数人意识到的还要多。