gpt4 book ai didi

python - 使用 for 循环时 Python 中的变量范围

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:17 27 4
gpt4 key购买 nike

我是 Python(以及一般编程)的新手。我一直试图通过反复试验来学习它,但遇到了一个问题。

我试图实现的代码是获取按字母顺序排列的最长子字符串。也就是说,

  • 对于“abcdeasdccjh”的输入,输出应该是“abcde
  • 对于'abbcdabcd'的输入,输出应该是'abbcd'

我写的代码如下:

s = 'abbcdabcd'
sub = ''
temp = ''

for index in range(len(s)):
temp = s[index]
for i in range(len(s[index:])):
if index+i+1 < len(s):
if s[index+i+1] < s[index+i]:
break
else:
temp += s[index+i+1]

if len(temp) >= len(sub):
sub == temp

print('final ',sub)

这可能不是为此实现的最佳逻辑,但它似乎有效。问题是,最终的 print 语句不断打印子变量的初始值。我该如何克服这个问题?

PS:出于以上目的,如果我有更好的算法可以使用,欢迎在评论中分享。不过,现在这对我来说只是次要的事情。

最佳答案

你说的是

sub == temp

请记住,“==”运算符用于比较,而不用于赋值。您正在比较 sub 和 temp 而不是分配。使用

sub = temp

关于python - 使用 for 循环时 Python 中的变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44780934/

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