python列表if statemen

2024-05-14 13:14:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试根据潮位高度制作一个时间表生成器,我在下面的列表中列出了潮位高度,每个值代表特定时间的潮位高度,例如9am=111 10am=123等等。。你知道吗

tide_list = [111, 123, 135, 143, 146, 140, 128, 113, 99]

我只想在潮水超过100时显示一条消息(如在这种情况下) 9:00~16:00 除了设置多个if语句之外,还有什么好方法可以做到这一点吗?你知道吗

我试着将列表中的每个值放入单个变量中,但看起来太乱了。你知道吗

你知道吗更新:基本上是在尝试简化以下代码

tide_list = [111, 123, 135, 143, 146, 140, 128, 113, 99]

time9,time10,time11,time12,time13,time14,time15,time16,time17=tide_list

if(time9>=100 and time10>=100 and time11>=100 and time12>=100 and 
time13>=100 and time14>=100 and time15>=100 and time16>=100 and 
time17>=100):
    print('9:00~17:00')
elif time9>=100 and time10>=100 and time11>=100 and time12>=100 and 
time13>=100 and time14>=100 and time15>=100 and time16>=100 and time17<100:
print('9:00~16:00')
elif time9>=100 and time10>=100 and time11>=100 and time12>=100 and 
time13>=100 
and time14>=100 and time15>=100 and time16<100 and time17<100:
print('9:00~15:00')
elif time9>=100 and time10>=100 and time11>=100 and time12>=100 and 
time13>=100 and time14>=100 and time15<100 and time16<100 and time17<100:
print('9:00~14:00')
etc...

Tags: and高度listprinttide潮位time10time14
3条回答

您只需要一个for循环和一个if语句:

tide_list = [111, 123, 135, 143, 146, 140, 128, 113, 99]

for height in tide_list:
    if height > 100:
        print(height)

谢谢你们所有的回答, 我重新考虑我的逻辑,我决定做如下,这看起来比我的第一次尝试简单。你知道吗

tide_list = [111, 123, 135, 143, 146, 140, 128, 113, 99]

time9,time10,time11,time12,time13,time14,time15,time16,time17=tide_list

if time9>=100:
    start ='9:00~'
elif time10>=100:
    start ='10:00~'
elif time11>=100:
    start="11:00~"
elif time12>=100:
    start ='12:00~'
elif time13>=100:
    start="13:00~"
elif time14>=100:
    start ='14:00~'
elif time15>=100:
    start="15:00~"
elif time16>=100:
    start ='16:00~'
elif time17>=100:
    start="17:00~"
else:
    print("NO START TIME WAS SET!! CHECK DATA")
if time17>=100:
    end ='17:00'
elif time16>=100:
    end ='16:00'
elif time15>=100:
    end="15:00"
elif rime14>=100:
    start ='14:00'
elif time13>=100:
    end="13:00"
elif time12>=100:
    end ='12:00'
elif time11>=100:
    end="11:00"
elif time10>=100:
    end='10:00'
elif time19>=100:
    end="9:00"
else:
    print('NO END TIME SET CHECK DATA')
print start+end

这个答案假设潮汐在给定的时间内不会出现几次。你知道吗

# Sample data
tide_list = [111, 123, 135, 143, 146, 140, 128, 113, 99]

# Filter out the low values and replace the high values with their index in the list (plus an offset)
above = [i+9 for i, level in enumerate(tide_list) if level >= 100]

# You could replace this with the error logic of your choice
assert len(above) >= 1, 'The tide never came'

# Format and print the result
print('{0:02d}:00~{1:02d}:00'.format(above[0], above[-1]))

相关问题 更多 >

    热门问题