Python 将此while循环转换为更高效的while循环

Python 将此while循环转换为更高效的while循环,python,python-3.x,Python,Python 3.x,我正在尝试用最简单的方法解决这个问题,我是一个初学者,这是我被问到的问题和代码: 程序逻辑选择。考虑下面的代码,它使用while循环并找到标志来搜索2的幂的列表,其中2的值被提升到第五个幂(32),它存储在一个名为POWE.P.< /P>的模块文件中。 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]:`

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

程序逻辑选择。考虑下面的代码,它使用while循环并找到标志来搜索2的幂的列表,其中2的值被提升到第五个幂(32),它存储在一个名为POWE.P.< /P>的模块文件中。
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')
L=[1,2,4,8,16,32,64]
X=5
发现=错误
i=0
当未找到且i
它要我做的是一对夫妇,但第一个问题让我困惑

a、 )首先,用while-loop-else子句重写代码,以消除find标志和final if语句

谢谢你的帮助。谢谢

Python附带了

使用
索引
方法:

L = [...]
try:
    i = L.index(2**X)
    print("idex: %d"%i)
except ValueError as err:
    print("not found")
L=[1,2,4,8,16,32,64]
X=5
i=0
而我
#1在未找到
变量的情况下重写代码#2重写代码,使only if语句位于while循环内(这必须作为#1的结果来完成)。。。允许您使用函数吗?这个问题不属于吗?这是完成手头工作的方法,但这似乎不是问题的答案(“首先,使用else-while循环子句,…”)谢谢,这正是我要寻找的,唯一的问题是break是否算作else子句?要合并while语句的else子句,请将最后一行代码更改为“else:print(X,'notfound')”
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')