2014-09-01 33 views
-1
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) 

嗨,大家好,我现在正在做一些项目。这是我最后一行代码的一部分。有两个字符,我想能够使用一个功能。我几乎完全自学,而且我很努力编写很长的代码,所以可能存在基本错误,或者我可能做了一些只是不能工作的东西,但是如何在函数中使用变量来更改“死亡”变量的名称在函数调用?因此,例如输出(10需要将死亡改为death1?这是可能的。我也需要能够在一个固体输出中打印这个 字符(然后功能参数)现在已经死了如何根据函数parentiss更改变量名称?

回答

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类中;见例如the tutorial。然后您可以将一个Character实例传递给该函数。

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']如果这是一个启动游戏。)