【问题标题】:python looping through elements of a list with While Loop using Boolean Expressionpython使用布尔表达式使用While Loop遍历列表的元素
【发布时间】:2018-08-24 23:17:26
【问题描述】:

伙计们,我试图实现给定的输入应该循环通过我名为enerji 的浮点列表,如果它小于它,则打印出第一个元素,并且在它的元素之前打印出 1。 (在我的情况下编辑 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]

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

【问题讨论】:

  • 你能重新格式化你的代码,或者重新粘贴它吗?很难说出你的 while 循环在哪里开始和结束。至于为什么再次要求您输入,我的猜测是您缺少break。另外,我根本看不到i 的定义位置。从本质上讲,您在 while 循环上的条件并没有像您想象的那样进行评估。
  • 我的错应该是 'a' 而不是 'i' 更正它但仍然有同样的问题

标签: python python-3.x


【解决方案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])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-13
    • 2017-03-05
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2020-01-02
    相关资源
    最近更新 更多