Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
全局Python列表_Python_Python 3.x - Fatal编程技术网

全局Python列表

全局Python列表,python,python-3.x,Python,Python 3.x,我需要一些帮助来完成这个我一直坚持的功能 我需要做三个过程,一个是根据输入的奇数或偶数运行来切换每个玩家,这是有效的,但是,我不知道如何替换和填充与batsmanName列表相关的batsmanName占位符,如果使用了一个wicket,它将更改为batsmanName列表中的下一个元素(如果使用了wicket,则由用户添加) 最后一个过程是将batsmanRun相关指数中的分数添加到击球手击球中,也就是说,如果batsmanBatting[4]为'T',则batsmanRun[4]应根据情况累

我需要一些帮助来完成这个我一直坚持的功能

我需要做三个过程,一个是根据输入的奇数或偶数运行来切换每个玩家,这是有效的,但是,我不知道如何替换和填充与
batsmanName
列表相关的
batsmanName
占位符,如果使用了一个wicket,它将更改为
batsmanName
列表中的下一个元素(如果使用了wicket,则由用户添加)

最后一个过程是将
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.")
def getRuns(totalScore):
全局击球手姓名#[]空列表如果攻入了边门,函数将添加一名球员
全球batsmanRun#[0,0,0,0,0,0,0,0,0,0]#累加器
全球蝙蝠服装#['F','F','F','F','F','F','F','F','F','F','F','F']
全球棒球场#['F','F','F','F','F','F','F','F','F','F','F','F']
全球wickets
而(一):
尝试:
如果(总分%2==0):
印刷品(蝙蝠装)
runs=int(输入(“\nEnter为前锋%s运行:”%batsmanName[0]))
batsmanRun[0]+=运行次数
印刷品(batsmanRun)
其他:
印刷品(蝙蝠装)
runs=int(输入(“\nEnter为前锋%s运行:”%batsmanName[1]))
batsmanRun[1]+=运行次数
印刷品(batsmanRun)

如果(运行将名称添加到
batsmanName
列表中,则需要

batsmanName.append('Mr Batsman')
如果它是一个真正的占位符,那么不要使用列表,使用
None
或空字符串。在这种情况下,您可以通过分配它来更新它:

batsmanName = 'Mr Batsman'
对于第二个问题(你真的应该单独提出问题),不清楚“如果batsmanBatting[4]不是,那么batsmanRun[4]应该根据”的意思是什么,但我猜它的意思是:

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

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

要在
蝙蝠手册
列表中添加一个名字,你需要

batsmanName.append('Mr Batsman')
如果它是一个真正的占位符,那么不要使用列表,使用
None
或空字符串。在这种情况下,您可以通过分配它来更新它:

batsmanName = 'Mr Batsman'
对于第二个问题(你真的应该单独提出问题),不清楚“如果batsmanBatting[4]不是,那么batsmanRun[4]应该根据”的意思是什么,但我猜它的意思是:

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


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

任何特定的部分?或者只是一般性的?一般来说。请回答以下问题?事件从何处发生?此函数是否仅用于修改全局。在这种情况下,这不是好的做法。您应该在e通风口正在发生。此功能作为一个无限循环将导致高cpu使用率。根据您的解释,我对您试图实现的目标只有一个模糊的概念。也许对熟悉这项运动的人来说,这一点更为明显。您可能应该试着将您的问题分解为更小的部分:谁是当前的玩家,她做了什么什么时候做,为什么做,诸如此类。据我所知,我对板球很熟悉。你必须保存以下数据:1)谁是现在的击球手(前锋和非前锋)2)他们的得分3)所有击球手的得分。你能告诉我你在代码中的哪些地方维护了这些吗?还有,你想解决的最难的问题是什么?有没有具体的部分?还是一般的?一般的。。请你回答以下问题好吗?事件发生在哪里?此函数是否仅用于修改全局变量。在这种情况下,这不是好的做法。您应该在事件发生的位置修改全局。这个函数作为一个无限循环将导致高cpu使用率。根据您的解释,我对您试图实现的目标只有一个模糊的概念。也许对熟悉这项运动的人来说,这更明显。你可能应该试着把你的问题分成几个小部分:谁是现在的球员,她什么时候做什么,为什么做,诸如此类。据我所知,我对板球很熟悉。你必须保存以下数据:1)谁是当前击球手(前锋和非前锋)2)他们的得分3)所有击球手的得分。您能告诉我您在代码中的哪些地方维护了所有这些吗?另外,您试图解决的最难的问题是什么?嗨,Lennart,将名称添加到batsmanName列表没有问题,它是在添加后填充getRuns()函数中的占位符。我想你说得有点对,板球总共有11名球员,一次有2名球员在场上。如果一名球员被三击出局,球员在击球列表中的位置将变为“F”,下一个值将变为“T”,表示下一名球员正在击球。Batsmanifield表示场上有两名球员,所以它应该看起来像这个Batsmanifield['T','T','F','F','F','F','F','F','F']是的,lennart是对的,我想我需要使用嵌套for循环,如果state==Y,那么为该球员添加跑步。现在我要修改它,所以只有当state==Y时才会显示名称。有什么想法吗?@user1291271:我不明白“将名称添加到batsmanName列表”和“填充batsmanName占位符”之间有什么区别。将名称添加到列表将填充占位符。同样的事情。您需要更清楚。@Lennart:该函数有两个输入,即当前击球的两名球员,如果有一个边门,它调用另一个函数,要求用户输入下一个球员的名字,例如if(wickets==9):player3=input(str('请在边门端输入新的击球手:'))batsmanName.insert(2,player3)Batsmanofield[2]='T'@Lennart,我努力想做的就是回复