Python 为什么我的石头剪纸代码没有在JupyterLab中执行?
所以最近我尝试了一些python,从一个石头剪刀代码开始,它工作得很好,直到它没有,我实际上没有改变任何东西,它只是在JupyterLab中停止工作。此外,如果您看到任何可能性,请随时分享一些关于如何缩短此代码的提示 代码:Python 为什么我的石头剪纸代码没有在JupyterLab中执行?,python,Python,所以最近我尝试了一些python,从一个石头剪刀代码开始,它工作得很好,直到它没有,我实际上没有改变任何东西,它只是在JupyterLab中停止工作。此外,如果您看到任何可能性,请随时分享一些关于如何缩短此代码的提示 代码: 代码在JupyterLab中运行良好,甚至在我的Jupyter笔记本VSCode中也运行良好,因此我怀疑我们是否有足够的信息来帮助您。也许你需要重新启动你的内核 但是,我建议进行以下增强:您的功能包括游戏逻辑和输入/输出管理。根据“独立关注点”范例,您应该提取后者,例如,将
代码在JupyterLab中运行良好,甚至在我的Jupyter笔记本VSCode中也运行良好,因此我怀疑我们是否有足够的信息来帮助您。也许你需要重新启动你的内核 但是,我建议进行以下增强:您的功能包括游戏逻辑和输入/输出管理。根据“独立关注点”范例,您应该提取后者,例如,将其放在另一个函数中。然后,逻辑由“大量if语句”(又名“初学者代码”)组成,产生7个决策点(圈复杂度Tx=8)。您可以轻松地将逻辑放入决策矩阵,然后在函数中只剩下2个决策点:
def evaluate_game(p1: str, p2: str) -> str:
"""Evalute a Rock-Paper-Sissors game
:param p1: selection player 1
:type p1: str
:param p2: selection player 2
:type p2: str
:return: result
:rtype: str
"""
DECISION_MATRIX = {
'Rock': {'Paper': 'Player 2 Wins',
'Scissors': 'Player 1 Wins'},
'Paper': {'Rock': 'Player 1 Wins',
'Scissors': 'Player 2 Wins'},
'Scissors': {'Rock': 'Player 2 Wins',
'Paper': 'Player 1 Wins'}}
if p1 == p2:
return 'Game Draw'
else:
try:
return DECISION_MATRIX[p1][p2]
except KeyError:
return 'Check Spelling'
代码在JupyterLab中运行良好,甚至在我的Jupyter笔记本VSCode中也运行良好,因此我怀疑我们是否有足够的信息来帮助您。也许你需要重新启动你的内核 但是,我建议进行以下增强:您的功能包括游戏逻辑和输入/输出管理。根据“独立关注点”范例,您应该提取后者,例如,将其放在另一个函数中。然后,逻辑由“大量if语句”(又名“初学者代码”)组成,产生7个决策点(圈复杂度Tx=8)。您可以轻松地将逻辑放入决策矩阵,然后在函数中只剩下2个决策点:
def evaluate_game(p1: str, p2: str) -> str:
"""Evalute a Rock-Paper-Sissors game
:param p1: selection player 1
:type p1: str
:param p2: selection player 2
:type p2: str
:return: result
:rtype: str
"""
DECISION_MATRIX = {
'Rock': {'Paper': 'Player 2 Wins',
'Scissors': 'Player 1 Wins'},
'Paper': {'Rock': 'Player 1 Wins',
'Scissors': 'Player 2 Wins'},
'Scissors': {'Rock': 'Player 2 Wins',
'Paper': 'Player 1 Wins'}}
if p1 == p2:
return 'Game Draw'
else:
try:
return DECISION_MATRIX[p1][p2]
except KeyError:
return 'Check Spelling'
您需要在另一个单元格中调用该函数,正如另一个人之前提到的,您应该可以:)
您只是定义了函数,而没有执行它。您需要在另一个单元格中调用函数,正如另一个人之前提到的,您应该可以:)
你只是定义了函数,没有执行它。你真的在另一个单元格中调用了函数吗?这里只有定义。您还应该考虑添加更多关于它如何停止工作的描述,运行时错误?意外输出?或者根本不运行?不,我没有在另一个单元格中调用该函数,它只是在那里@AmarthGül它只是停止工作,不,我没有得到任何错误或任何东西。当我尝试运行它时,它创建了一个新的单元格,其他什么都没有发生。嗯,你的代码没有做任何事情。。。您只需定义一个函数。你需要用
()
像这样调用石头剪刀()
你真的在另一个单元格中调用了这个函数吗?这里只有定义。您还应该考虑添加更多关于它如何停止工作的描述,运行时错误?意外输出?或者根本不运行?不,我没有在另一个单元格中调用该函数,它只是在那里@AmarthGül它只是停止工作,不,我没有得到任何错误或任何东西。当我尝试运行它时,它创建了一个新的单元格,其他什么都没有发生。嗯,你的代码没有做任何事情。。。您只需定义一个函数。你需要用()
打电话,就像用石头、布、剪刀()
@Daumus@Daumus
Rock_Paper_Scissors()