Jupyter 笔记本中的 Python while 循环未执行

标签 python python-3.x while-loop jupyter-notebook

我是Python编程新手,我在C中执行了这个问题,但我可以在Python中解决它,因为它不会在Jupyter笔记本上抛出错误,只是在单元格上抛出一个星号。

我循环了列表以避免索引越界错误。 请帮忙

s='UDDDUDUU'
n=8
s=list(s)
seaLevel=0
valley=0
li=[]
for i in s:
    if i=='D':
        seaLevel-=1
        li.append(seaLevel)
    elif i=='U':
        seaLevel+=1
        li.append(seaLevel)
i=0
j=0
while i<n:
    if li[i]==0 and li[(i+1)%n]<0:
        valley+=1
        j=i+1
        while li[j]<0 and j<n:
            j=+1
        i=j
    else:
        i+=1
valley

最佳答案

单元格上的星号通常表示存在无限循环并且代码片段不会终止。这正是您的代码的情况 - 您的 while 循环是一个无限循环。

while i<n:
    if li[i]==0 and li[(i+1)%n]<0:
        valley+=1
        j=i+1
        while li[j]<0 and j<n:
            j=+1 !!!!!!!!!!!!!!!!!!!!!!!!!
        i=j
    else:
        i+=1

您的拼写错误具体是j=+1,相当于j=(+1),而j+=1j=j+1j=+1 始终设置 j=1,因此您的 i=j 始终设置 i=1,因此你的 while 循环永远不会终止。

TL;DR:将 j=+1 更改为 j+=1。并且不要忘记为 valley 添加打印语句,正如评论中所提到的。

关于Jupyter 笔记本中的 Python while 循环未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57192853/

相关文章:

c - do while 语句只执行两次 code::block 和 dev c++

python - 如何使用 cv2.kmeans 中的标签作为列表的索引?

python - 不使用 graphviz/web 可视化决策树

Python 到 Swift,While 循环。

c - 简单的 C 菜单构建,Scanf 不拖拉输入

python - 在 Ubuntu 上导入 selenium 时出错

python - Django Rest Framework - 在列表中获取完整的相关对象

python - 在 Python/NumPy 中,如何通过复制元素来填充数组?

python - 如何将占位符文本添加到 Django Admin 中的搜索框?

python - .在没有按我预期的方式运行之后