将此while循环转换为更有效的while循环

时间:2012-03-28 11:00:02

标签: python python-3.x

我试图解决这个问题是最简单的方法,我是初学者,这是我被问到的问题和代码:

程序逻辑替代方案。考虑以下代码,它使用while循环和found标志来搜索2的幂列表,将2的值提高到第五个幂(32)它存储在名为power.py的模块文件中。

L = [1, 2, 4, 8, 16, 32, 64]
X = 5
found = False
i = 0

while not found and i < len(L):
    `if 2 ** X == L[i]:`
        found = True
    else:
        i = i+1

if found:
    ('at index', i)
else:
     print(X,'not found')

它要求我做的问题是一对夫妇,但第一个让我感到困惑,

a。)首先,使用while loop else子句重写代码,以消除found flag和final if语句。

请欣赏任何帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

Python附带batteries

使用index方法:

L = [...]
try:
    i = L.index(2**X)
    print("idex: %d"%i)
except ValueError as err:
    print("not found")

答案 1 :(得分:1)

L = [1, 2, 4, 8, 16, 32, 64] 
X = 5 
i = 0 
while i < len(L): 
    if 2 ** X == L[i]: 
        print('at index',i)
        break;
    i = i+1 
    if i==len(L): print(X,'not found')