def Change_char_stats():
Char_dmg = 50
Char_health = 100
Char_stat_choice= ''
print('Current Damage is:',Char_dmg,'and health is:',Char_health,'.')
Char_stat_choice=input('\nWhat character stat would you like to edit?')
if Char_stat_choice == '1':
print('Current damage is',Char_dmg,'.')
Char_dmg=int(input('Character damage to: '))
print('Character damage has been changed to',Char_dmg,'.')
Change_char_stats()
elif Char_stat_choice == '2':
print('Current damage is',Char_health,'.')
Char_health=int(input('Character health to: '))
print('Character health has been changed to',Char_health,'.')
Change_char_stats()
else:
print('Input invalid.')
Change_char_stats()
Change_char_stats()
所以基本上我在Python上为自己做一个简单的游戏,我的变量存在问题,因为当我运行程序时,原始变量被设置为50 dmg和100健康,但我想要的是什么do能够运行代码,更改变量然后让它们保持原样。虽然我理解为什么变量不是新值,但我不知道如何覆盖它们,非常感谢帮助。
感谢。
答案 0 :(得分:2)
我建议创建一个类来将所有变量打包成一个对象:
def class player_character:
def __init__(self):
self.health = 100
self.dmg = 50
现在您创建一个类的实例:
player = player_character()
直接更改变量:
player.health -= 10
或者,您可以向班级添加功能:
def class player_character:
def __init__(self):
self.health = 100
self.dmg = 50
def hit(self, dmg):
self.health -= dmg
现在你可以在一个对象上调用该函数:
player.hit(10)
类是非常强大的,是组织代码的绝佳工具。它们允许您将大量数据视为单个实体。我强烈建议您更多地了解它们和面向对象的编程。
答案 1 :(得分:0)
将变量放在函数体之外,并在usng全局关键字中访问它们:
somevar = 5
def foobar(x):
global somevar
somevar = x
print somevar
foobar(6)
print somevar