Как в python в цикле for задать шаг 0.5?
for _ in range(1,10,0.5):
TypeError: ‘float’ object cannot be interpreted as an integer
ты бы сам проверил прежде чем писать. но не работает цикл с числом типа float!
у тебя шаг от 1 до 10 идет. а что такое пол шага? то есть вместо 10 шагов ты сделаешь 20 полушагов. смысл думаю понятен? я так понимаю чел нужно чтоб какое то действие выполнялось только за 2 прохода цикла вот он и выразился как 0.5 шаг. так тут условие в помошь.
Синтаксис и возможности цикла for Python
Циклы python — for и while представляют собой операторы языка программирования, то есть операторы итерации, которые позволяют повторять код определенное количество раз.
Синтаксис цикла For
Как уже упоминалось ранее, цикл for в Python является итератором, основанным на цикле. Он проходит по элементам list и tuple, строкам, ключам словаря и другим итерируемым объектам.
В Python цикл начинается с ключевого слова for , за которым следует произвольное имя переменной, которое будет хранить значения следующего объекта последовательности. Общий синтаксис for. in в python выглядит следующим образом:
for in : else:
Элементы «последовательности» перебираются один за другим «переменной» цикла; если быть точным, переменная указывает на элементы. Для каждого элемента выполняется «действие».
Пример простого цикла for в Python:
>>> languages = ["C", "C++", "Perl", "Python"] >>> for x in languages: . print(x) . C C++ Perl Python >>>Блок else является особенным; в то время как программист, работающий на Perl знаком с ним, это неизвестная конструкция для программистов, которые работают на C и C++. Семантически он работает точно так же, как и в цикле while .
Он будет выполнен только в том случае, если цикл не был «остановлен» оператором break . Таким образом, он будет выполнен только после того, как все элементы последовательности будут пройдены.
Оператор прерывания в python — break
Если в программе цикл for должен быть прерван оператором break , цикл будет завершен, и поток программы будет продолжен без выполнения действий из else .
Обычно фразы break в pyton связаны с условными операторами.
edibles = ["отбивные", "пельмени", "яйца", "орехи"] for food in edibles: if food == "пельмени": print("Я не ем пельмени!") break print("Отлично, вкусные " + food) else: print("Хорошо, что не было пельменей!") print("Ужин окончен.")Если мы запустим этот код, получим следующий результат:
Отлично, вкусные отбивные Я не ем пельмени! Ужин окончен.Удалим «пельмени» из нашего списка еды и получим следующее:
Отлично, вкусные отбивные Отлично, вкусные яйца Отлично, вкусные орехи Хорошо, что не было пельменей! Ужин окончен.Оператор пропуска python — continue
Предположим, нам «пельмени» нам нужно просто пропустить и продолжить прием пищи. Тогда нужно использовать оператор continue , для перехода к следующему элементу.
В следующем маленьком скрипте python мы используем continue , чтобы продолжить, итерацию по списку, когда мы сталкиваемся с пельменями.
edibles = ["отбивные", "пельмени", "яйца", "орехи"] for food in edibles: if food == "пельмени": print("Я не ем пельмени!") continue print("Отлично, вкусные " + food) else: print("Ненавижу пельмени!") print("Ужин окончен.")Результат будет следующим:
Отлично, вкусные отбивные Я не ем пельмени! Отлично, вкусные яйца Отлично, вкусные орехи Ненавижу пельмени! Ужин окончен.Итерация по спискам с функцией range()
Если вам нужно получить доступ к индексам списка, не очевидно как использовать цикл for для этой задачи. Мы можем получить доступ ко всем элементам, но индекс элемента остается недоступным. Есть способ получить доступ как к индексу элемента, так и к самому элементу. Для этого используйте функцию range() в сочетании с функцией длины len() :
Как сделать шаг цикла for 0.1 в цикле Python?
Добрый день. Есть математическая задача "Вывести значения функции f(x) на отрезке [n-3;1] с шагом 0.1", сам цикл и формулу я написал, но когда я попытался выставить шаг 0.1 выдало ошибку о том что цифры с плавающий точной передавать как аргумент нельзя, в следствии чего вопрос как можно обойти эту ошибку?
import math n=12 for i in range(n-3, n+1, 0.1): a=(math.cos(i))/(2*math.tan(i)) b1=(6-i) b2=math.exp(b1) ab=a+b2 c=math.log(5*i-2) print("------------------------") print(str(i) + " | " + str(a)) print("------------------------")
- Вопрос задан более двух лет назад
- 3464 просмотра
1 комментарий
Простой 1 комментарий
Цикл for в python. Изменение I в цикле
i изменяется. Вот только на следующем цикле в переменную i будет присвоено очередное значение из ряда (0,1,2,3,4,5,6) согласно вашему range(7) .
Если требуется просто идти с некоторым шагом, то используй соответствующие параметры для функции range() . Например, цикл:
for i in range(0, 7, 5): .
будет идти от 0 до 7 с шагом 5.
Если же вам требуется управлять шагом внутри цикла, то делайте это при помощи цикла while :
i = 0 while i < 7: if True: i += 5 else: i += 1 .