如何根据parentiss函数更改变量名称?

2024-09-30 08:36:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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)

大家好,我现在正在做一个项目。这是我最后几行代码的一部分。有两个字符,我希望能够使用函数。我几乎完全是自学成才的,而且我根本没有花很长时间编写代码,因此可能会出现基本错误,或者我可能正在做一些无法工作的事情,但是如何使用函数调用中的内容更改函数中“death”变量的名称呢?例如,输出(10)需要将死亡更改为死亡1?这可能吗。此外,我需要能够打印在一个固体输出这作为 字符(然后是函数参数)现在已失效


Tags: 代码falsetrueoutputifiselsenow
2条回答

通常,最自然的解决办法是使用字典

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

您的代码显示了对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实例传递给函数

相关问题 更多 >

    热门问题