return
операторов в python немедленно завершат функцию и вернут значение. Поэтому вам нужно хранить значения внутри и возвращать значения после того, как вы закончите проверку всех элементов.
Например:
def ab():
output_save = []
for a in aa:
if a<2 : output_save.append("Hello")
elif 3>a>2 : output_save.append("Salut")
else: output_save.append("Bonjour")
return output_save
aa=[1,2.5,3]
ab()
возвращает
['Hello', 'Salut', 'Bonjour']
if
против elif
Научитесь использовать elif
! Он может оптимизировать ваш код и сделать его более читабельным.
Пример:
if 90 <= grade:
print('A')
elif 80 <= grade:
print('B')
elif 70 <= grade:
print('C')
elif 60 <= grade:
print('D')
else:
print('F')
эквивалентен
if 90 <= grade:
print('A')
if 80 <= grade < 90:
print('B')
if 70 <= grade < 80:
print('C')
if 60 <= grade < 70:
print('D')
if grade < 60:
print('F')
Передача данных в качестве параметров
Как правило, вы хотите избежать использования «глобальных». Если вы можете помочь, вы должны передать вещи в качестве параметров (иногда этого нельзя избежать, но в большинстве случаев вы должны это сделать).
Я бы переписал код как:
def greeting_by_values(values_list):
greeting_list = []
for value in values_list:
if value < 2:
greeting_list.append("Hello")
elif value < 3:
greeting_list.append("Salut")
else:
greeting_list.append("Bonjour")
return greeting_list
values=[1,2.5,3]
print(greeting_by_values(values))