Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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_Function_While Loop - Fatal编程技术网

Python 石头、剪纸、蟒蛇等问题中的分数函数

Python 石头、剪纸、蟒蛇等问题中的分数函数,python,function,while-loop,Python,Function,While Loop,我是编程新手&试图为我的类创建一个5个RPS的最佳游戏,但遇到了一些问题…当我调用我创建的alternativley的评分函数时,它工作了,但它使我的while循环继续运行,当我不调用评分函数时while循环在3停止 def gamerps(): import random YS= 0 CS= 0 rules = {("R", "S"), ("P", "R"), ("S", "P")} msgs = {"R": "

我是编程新手&试图为我的类创建一个5个RPS的最佳游戏,但遇到了一些问题…当我调用我创建的alternativley的评分函数时,它工作了,但它使我的while循环继续运行,当我不调用评分函数时while循环在3停止

 def gamerps():
        import random
        YS= 0
        CS= 0
        rules = {("R", "S"), ("P", "R"), ("S", "P")}
        msgs = {"R": "rock beats scissors", "P": "paper covers rock", "S":" scissors cut paper"}
        while YS or CS <= 3:
            YM = input("R/P/S?")
            CM = random.choice(["R", "P", "S"])
            if (YM, CM) in rules:
                print ("You won! %s" % (msgs[YM]))
                YS= YS+1
                print (scorerps(YS, CS))
            elif (CM, YM) in rules:
                print ("You lost! %s" % (msgs[CM]))
                CS= CS+1
                print (scorerps(YS, CS))
            elif YM == CM:
                print ("Tie! Go again!")
            else:
                print ("ERROR, please choose R, P, or S for [R]ock [P]aper [S]cissors")

gamerps()

检查
循环时的
状态:


while YS或CS我认为问题可能是您的while循环:

while YS or CS <= 3:

当YS或CS时,为什么在其内部调用
scorerps
?另外,您在
gamerps
中的
while
状态与您想象的不同。它应该是
,而YS oh ya应该是“and”&当你说在内部调用scorerps时,你是指在我调用score(1,2)的第二个代码中,还是在我调用打印分数时在RPS函数中?我正在调用score函数(1,2)来测试它,但是我试图为赋值做的是调用score函数来显示RPS函数中的score,它必须是一个单独的函数,所以我不能只在RPS函数中添加score def中的代码,因为我们必须实际创建separatley,然后在RPS函数中调用它。。。如果这有意义的话,我可能误解了你的提问……我的意思是在函数
scorerps
中,函数的最后一行是
scorerps(1,2)
所以基本上你有无限递归调用,我明白了!,我想这里的格式有点乱,但一开始不是这样的,哈哈,谢谢,我没注意到!这个修好了,谢谢!然而,当它打印我的结果时,一切都是正确的,除了它在每个分数后打印这个“无”,不知道为什么…R/P/S?P你赢了!纸盖岩石你领先2-1!无R/P/S?S领带!再来一次!R/P/S?R你输了!纸封面摇滚乐的比分是2比2!没有,你赢了!石头胜过剪刀你3-2赢了!没有人知道“无”是关于什么的?实际上nvm我知道“无”我想我只是调用了score函数,而不是打印它
while YS or CS <= 3:
(YS != 0) or (CS <= 3)