if strengh1 <=0:
death1=True
else:
death1 = False
if strengh2 <=0:
death2=True
else:
death2=False
def output(character):
if death character == False:
print
print('Character', character ,' strengh is now %s' % strengh1)
print('Character ', character ,' skill is now %s' % skill1)
else:
print
print('Character ', character ,' is dead')
output(1)
output(2)
大家好我正在做一些项目。这是我最后一行代码的一部分。有两个字符,我希望能够使用一个功能。我几乎完全是自学成才,而且我的编码很长,所以可能存在基本错误,或者我可能正在做一些无法工作的事情,但我怎样才能更改&#34; death&#34;使用函数调用函数中的函数变量?所以例如输出(10需要将死亡改为死亡1?这是可能的。此外,我需要能够在一个固体输出中打印这个 字符(然后是函数参数)现在已经死了
答案 0 :(得分:0)
您的代码表明了对Python名称工作方式的深刻误解。只需设置character = 1
并撰写death character
就不会访问death1
,这根本没有任何意义。关于Python如何处理名称here,有一个很好的入门。
您可以通过将output
实际需要的所有变量传递给def output(character, strength, skill, death):
if not death:
print
print('Character', character ,' strength is now %s' % strength)
print('Character ', character ,' skill is now %s' % skill)
else:
print
print('Character ', character ,' is dead')
output(1, strength1, skill1, death1)
来解决您的具体问题:
Character
这显然有点尴尬,因此下一步是将这些参数封装为Character
类中的属性;见例如the tutorial。然后,您可以将单个{{1}}实例传递给函数。
答案 1 :(得分:0)
通常,最自然的解决方案是使用字典。
death = dict()
# most probably strength should be a dict too
if strengh1 <=0:
death[1]=True
else:
death[1] = False
# or death[1] = bool(strength1<=0)
if strengh2 <=0:
death[2]=True
else:
death[2]=False
def output(key):
if death[key]== False:
print
print('Character', character ,' strengh is now %s' % strengh1)
print('Character ', character ,' skill is now %s' % skill1)
else:
print
print('Character ', character ,' is dead')
output(1)
output(2)
根据1和2的含义,您可能希望使用字符串 - strength['muscles']
,death['poisoning']
或许? (或strength['marketing']
和death['irrelevance']
如果这是一个启动游戏。)