繁体   English   中英

Python从if语句转到else

[英]Python break from if statement to else

(我是一个Python新手,所以对这个基本问题道歉,我出于某种原因无法找到答案。)

我有一个嵌套的if语句与if / else块的if语句。 嵌套的 if语句中,如果它符合条件,我希望代码中断到else语句。 但是当我在嵌套if break时,我不确定它是否违反了else语句。

我想找到给定字符串s字母顺序中最长的子字符串。 这是我的代码:

s = 'lugabcdeczsswabcdefghij'
longest = 1
alpha_count = 1
longest_temp = 1
longest_end = 1
for i in range(len(s)-1):
    if (s[i] <= s[i+1]):
        alpha_count += 1
        if (i+1 == (len(s)-1)):
            break
    else:
        longest_check = alpha_count
        if longest_check > longest:
            longest = longest_check
            longest_end = i+1
        alpha_count = 1
print(longest)
print('Longest substring in alphabetical order is: ' + 
    s[(longest_end-longest):longest_end])

(是的,我意识到这里肯定有很多不必要的代码。还在学习!)

在这个嵌套if

if (i+1 == (len(s)-1)):
            break

...如果True ,我希望代码打破else语句。 不过,它似乎没有突破到那一部分。 有帮助吗?

break时,你想,如果不向statments跳出循环使用。 您可以使用另一个if语句为您执行此逻辑:

if (s[i] <= s[i+1]):
    alpha_count += 1
elif (i+1 == (len(s)-1)) or (add boolean expression for else part in here too something like s[i] > s[i+1]):
    longest_check = alpha_count
    if longest_check > longest:
        longest = longest_check
        longest_end = i+1
    alpha_count = 1

这个片段正在做的是评估两个布尔值,两个都用于else部分。 但是, if(i+1 == (len(s)-1)) ,则表示要么先执行else ,要么执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM