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中创建使用单词而不是数字的Sentinel循环?_Python_Repeat_Sentinel - Fatal编程技术网

如何在Python中创建使用单词而不是数字的Sentinel循环?

如何在Python中创建使用单词而不是数字的Sentinel循环?,python,repeat,sentinel,Python,Repeat,Sentinel,所以我正在为计算机科学专业学习python,我对我应该做什么感到困惑。所以我需要在我的石头剪刀游戏中实现哨兵控制的重复。我不确定到底是什么原因,我认为这只是为了使代码更简洁或更易于使用。然而,在这个Sentinel循环中,我需要使用“while”语句。这很难,因为我只见过使用数字而不是单词的while语句。当我尝试在我的石头剪纸游戏中实现这个循环时,它只是永远循环,不起作用。有人能看看代码,看看是怎么回事吗?我将不胜感激:) 只是一个合理的警告,我知道我的代码是一团混乱。对不起,如果有人不高兴的

所以我正在为计算机科学专业学习python,我对我应该做什么感到困惑。所以我需要在我的石头剪刀游戏中实现哨兵控制的重复。我不确定到底是什么原因,我认为这只是为了使代码更简洁或更易于使用。然而,在这个Sentinel循环中,我需要使用“while”语句。这很难,因为我只见过使用数字而不是单词的while语句。当我尝试在我的石头剪纸游戏中实现这个循环时,它只是永远循环,不起作用。有人能看看代码,看看是怎么回事吗?我将不胜感激:)

只是一个合理的警告,我知道我的代码是一团混乱。对不起,如果有人不高兴的话

#初始化阶段
随机输入
def comp_choice():
'''
调用时,此函数返回
从中随机抽取的项目
'''
rps=[“石头”、“布”、“剪刀”]
返回随机选择(rps)[0]
计算机选项=复合选项()
#加工阶段
玩家=(输入(“输入石头、布或剪刀”)#您可以输入什么
while player==计算机选项:
如果播放器==计算机\u选项:
打印(“计算机拾取”,计算机选择)
打印(“平局游戏!”)
elif player==“剪刀”:
如果计算机选项=“纸张”:
打印(“计算机拾取”,计算机选择)
打印(“你赢了!”)
elif player==“摇滚乐”:
如果计算机选项=“纸张”:
打印(“计算机拾取”,计算机选择)
打印(“你输了!”)
elif播放器==“纸张”:
如果计算机_选项==“剪刀”:
打印(“计算机拾取”,计算机选择)
打印(“你输了!”)
elif player==“摇滚乐”:
如果计算机_选项==“剪刀”:
打印(“计算机拾取”,计算机选择)
打印(“你赢了!”)
elif player==“剪刀”:
如果计算机_选项==“摇滚”:
打印(“计算机拾取”,计算机选择)
打印(“你输了!”)
elif播放器==“纸张”:
如果计算机_选项==“摇滚”:
打印(“计算机拾取”,计算机选择)
打印(“你赢了!”)
#终止阶段
其他:
打印(“我想你拼错了……或者你把第一个字母大写了。请再试一次”)

在每次迭代中,while循环对布尔表达式求值,如果该表达式求值为True,则继续。到目前为止,您似乎看到的大多数布尔表达式都类似于
var>10
,如果变量大于10,则其计算结果为True,否则为False,在当前编写循环时,它将执行此操作,因为
player==computer\u choice
是一个布尔表达式。似乎您的循环或多或少应该按照您的意愿工作,但您的
else
语句应该在
while
循环中,这样在循环的每次迭代中都会发现输入错误(拼写错误的单词等)。

您到底需要什么?这里有一些关于哨兵的说法。请详细说明您需要什么,并分享您的代码。也许您希望在循环中的某个地方有一个新的
播放器
选项。好的,非常感谢,我将在while循环中添加else语句。我注意到,如果我输入一个像石头、布或剪刀这样的值,它会一遍又一遍地告诉我匹配的结果,直到程序崩溃。我已经看了一遍,没有找到问题所在,我该如何停止呢?在while循环中移动输入行和计算机选择行,这样在循环的每次迭代中,玩家都有机会输入一个新的选择,计算机会做出一个新的选择。否则,总是使用相同的选择,因此相同的结果会一次又一次地重复。