Python-元组元组中的条件,无循环



我是Python的新手(来自C,通过领英学习(,正在努力学习更多关于高效编码实践和Python的知识。我有一个程序,将在一个更大的项目中使用,但试图看看是否有一种更有效的方法而不是循环。我有一个temp,它将被比作一个元组。每个元组都有上下范围和一个将作为输出的相关单词。我可以循环通过很好,但有更有效的方法吗?这是我开始工作的循环方式。谢谢

# Set constants and list values
record_cold = -89
record_hot = 56.7
err_string = 'ERROR : Not in range n        Or you just broke a record temp'
temp_list = (
(record_cold, -10, 'stone cold'),
(-10, 0, 'cold'),
(0, 10, 'chilly'),
(10, 20, 'nice'),
(20, 30, 'bar-b-que time'),
(30, 40, 'tanning'),
(40, 50, 'hot'),
(50, record_hot, 'too damn hot')
)
curr_temp = 25
for i in temp_list:
if curr_temp >= i[0]:
if curr_temp < i[1]:
output = i[2]
break
if True:
output = err_string
print(f'{output}')

如果温度恒定,您可以执行:

if (curr_temp >= 50): output = 'too damn hot'
elif (curr_temp >= 40): output = 'hot'
elif (curr_temp >= 30): output = 'tanning'
# and so on

在这种情况下,环路不是必需的

否则,如果列表的大小会发生变化,则很难避免循环。但你可以让它更简洁:

for i in temp_list:
if curr_temp < i[1]:
output = i[2]
break

(假设current_temp从不在最小值和最大值之外,否则您应该在循环之前处理它(

最新更新