python使用布尔表达式使用While循环遍历列表元素

时间:2018-08-24 23:17:26

标签: python python-3.x

我正在尝试使给定的输入应该遍历名为enerji的浮动列表,并打印出小于它的第一个元素,并打印出第一个元素。 (在我的情况下,编辑y = 82上面已定义但未看到) 这是代码:

    a = 0
    input_bigger_than_energy = False
    while a!= y and not(input_bigger_than_energy):
        energy = float(input('write down interwal of energy between 1000 and 
    100000000000:'))
        if energy > enerji[a]:
            a=a+1
        else:
            input_bigger_than_energy = True
    print(a)
    print(enerji[a])
    print(enerji[a-1])



enerji = [1000.0, 1500.0, 1838.8, 1838.9, 2000.0, 3000.0, 4000.0, 5000.0, 6000.0, 8000.0, 10000.0, 15000.0, 20000.0, 30000.0, 40000.0, 50000.0, 60000.0, 80000.0, 100000.0, 150000.0, 200000.0, 300000.0, 400000.0, 500000.0, 600000.0, 800000.0, 1000000.0, 1022000.0, 1250000.0, 1500000.0, 2000000.0, 2044000.0, 3000000.0, 4000000.0, 5000000.0, 6000000.0, 7000000.0, 8000000.0, 9000000.0, 10000000.0, 11000000.0, 12000000.0, 13000000.0, 14000000.0, 15000000.0, 16000000.0, 18000000.0, 20000000.0, 22000000.0, 24000000.0, 26000000.0, 28000000.0, 30000000.0, 40000000.0, 50000000.0, 60000000.0, 80000000.0, 100000000.0, 150000000.0, 200000000.0, 300000000.0, 400000000.0, 500000000.0, 600000000.0, 800000000.0, 1000000000.0, 1500000000.0, 2000000000.0, 3000000000.0, 4000000000.0, 5000000000.0, 6000000000.0, 8000000000.0, 10000000000.0, 15000000000.0, 20000000000.0, 30000000000.0, 40000000000.0, 50000000000.0, 60000000000.0, 80000000000.0, 100000000000.0]

问题代码有效,但是再次要求我输入

1 个答案:

答案 0 :(得分:1)

循环中有输入语句;每次循环时都会要求输入。

此外,变量y从未设置为值。

# Shortened the list of example data
enerji = [1000.0, 1500.0, 1838.8, 1838.9, 2000.0, 3000.0, 4000.0]

a = 0
input_bigger_than_energy = False
y = 10  # Guessing a value for unknown variable

energy = float(input('write down interwal of energy between 1000 and 100000000000: '))
while a != y and not(input_bigger_than_energy):
    if energy > enerji[a]:
        a=a+1
    else:
        input_bigger_than_energy = True

print(a)
print(enerji[a])
print(enerji[a-1])