2014-09-01 32 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']如果這是一個啓動遊戲。)