Python 从 if 语句跳转到 else
Python break from if statement to else
(我是 Python 新手,很抱歉这个基本问题,我出于某种原因找不到答案。)
我有一个嵌套的 if
语句和 if
/else
块的 if
语句。在 nested 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
用于跳出循环而不是 if 语句。您可以有另一个 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
部分。但是,它说要么在 else
的情况下从第一个 if
执行,要么在 (i+1 == (len(s)-1))
的情况下执行
(我是 Python 新手,很抱歉这个基本问题,我出于某种原因找不到答案。)
我有一个嵌套的 if
语句和 if
/else
块的 if
语句。在 nested 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
用于跳出循环而不是 if 语句。您可以有另一个 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
部分。但是,它说要么在 else
的情况下从第一个 if
执行,要么在 (i+1 == (len(s)-1))