gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:15:11 25 4
gpt4 key购买 nike

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

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com