我是Python的新手(以及一般的编程)。我一直试图通过反复试验来学习它并遇到了一个问题。
我试图实现的代码是获取字母顺序最长的子字符串。也就是说,
我写的代码如下:
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:出于上述目的,如果我可以使用更好的算法,请随时在评论中分享。但是,这对我来说只是次要的事情。
答案 0 :(得分:2)
你在说那个
sub == temp
请记住&#34; ==&#34;运算符用于比较,不用于赋值。您正在比较sub和temp而不是分配。使用
sub = temp