全局Python列表

时间:2012-05-18 08:30:47

标签: python python-3.x

我需要一些帮助,我坚持这个功能。

我需要做三个过程,一个是根据输入的奇数或偶数运行来切换每个玩家,但是,我无法弄清楚如何替换和填充与batsmanName占位符相关的batsmanBatting占位符{1}}列表,如果获取了一个检票口,它将更改为batsmanName列表中的下一个元素(如果采用检票口则由用户添加)。

最后一个过程是将batsmanRun相关索引中的分数添加到击球击球中,也就是说,如果batsmanBatting[4]为'T',那么batsmanRun[4]应该累计。

我希望我已经清楚地解释了这一点并且有意义,如果不是我可以添加更多信息,任何帮助将非常感激。

def getRuns(totalScore):

    global batsmanName  #[] empty list a function adds a player if a wicket is taken
    global batsmanRun #[0,0,0,0,0,0,0,0,0,0,0] #accumulators 
    global batsmanBatting #['F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F'] 
    global batsmanOnField #['F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F']
    global wickets

    while(1):
        try:
            if(totalScore%2==0):
                print(batsmanBatting)
                runs=int(input("\nEnter runs for striker %s: " % batsmanName[0]))
                batsmanRun[0]+=runs
                print(batsmanRun)
            else:
                print(batsmanBatting)
                runs=int(input("\nEnter runs for striker %s: " % batsmanName[1]))
                batsmanRun[1]+=runs
                print(batsmanRun)
            if(runs<7):    
                return runs 
            else:
                print("Invalid run(s) entered. Please try again.")
        except Exception as err:
                print(err)
                print("Please try again.")

1 个答案:

答案 0 :(得分:1)

要为batsmanName列表添加名称,请执行

batsmanName.append('Mr Batsman')

如果它是真正的占位符,则不要使用列表,使用None或空字符串。在这种情况下,您可以通过分配来更新它:

batsmanName = 'Mr Batsman'

对于你的第二个问题(你真的应该单独提出单独的问题),不清楚“如果batsmanBatting [4]是'T',那么batsmanRun [4]应该根据”意思累积,但我想这意味着:

for num, state in enumerate(batsmanBatting):
    if state == 'T':
        batsmanRun[num] += 1

可能有更好的方法。或者不,我不知道板球。