Почему for i in range не работает на отрицательных значениях?
Функция возвращает None, хотя я ожидаю от неё 50. В чём я ошибся?
coefficient = 2.5
def purchase(percent):
if percent <= -10:
for i in range(-10, -40):
if i == percent:
return percent * coefficient
print(purchase(-20))
Ответы (2 шт):
Автор решения: Vit Saha
→ Ссылка
coefficient = 2.5
## по хорошим правилам функция должна ВСЕГДА что то возвращать если возврат ожидаемый
def purchase(percent):
if percent <= -10:
for i in range(-10, -40):
if i == percent:
return percent * coefficient
################
else:
return 100
print(purchase(-20))
далее
for i in range(-10, -40):
print(i)
#ничего
#однако
for i in range(-40, -10):
print(i)
>>
-40
-39
-38
-37
-36
-35
-34
-33
-32
-31
-30
-29
-28
-27
-26
-25
-24
-23
-22
-21
-20
-19
-18
-17
-16
-15
-14
-13
-12
-11
Автор решения: Алексей Белкин
→ Ссылка
range(start,stop,step) start - начало stop - конец, не включая значение step - шаг с каким шагом вы достигнете от начала до конца. Конструкция типа:
for i in range(1,-10,1):
print(i)
Ничего не вернет. Так как от 1 до -10 дойти с шагом 1 невозможно. Конструкция типа:
for i in range(1,-10, -1):
print(i)
Вернет:
0
-1
-2
-3
-4
-5
-6
-7
-8
-9