Общественный номер: You Er Hut
Автор: Питер
Редактор: Питер
Всем привет, меня зовут Питер~
Четыре сезона года, цикл повторяется: в конечном счете, это проблема цикла
Оператор for фактически решает проблему зацикливания. Циклы for есть во многих языках высокого уровня.
Оператор for — это оператор для итерируемых объектов в языках программирования, его основная функция — разрешить повторное выполнение кода. Взгляните на введение из Википедии:
In computer science, a for-loop (or simply for loop) is a control flow statement for specifying iteration, which allows code to be executedнеоднократно. (Функция: Что представляет собой цикл for?)
Цикл for состоит из двух частей: заголовка, определяющего итерацию, и тела, которое выполняется один раз за итерацию (что представляет собой цикл for?).
- Что такое: В вычислительной технике — оператор потока управления для специального объекта итерации, который может выполняться многократно.
- Как сформировать: головка (итерируемый объект) + исполнительное тело каждого объекта
повторяемый объект
что такое повторяемый объект
可迭代对象(Iteratable Object)
Это объект, который может возвращать один из своих членов за раз.Например, наши часто используемые объекты, такие как строки, списки, кортежи, наборы, словари и т. д., являются итерируемыми объектами.После получения этих объектов мы можем использовать для петли для работы.
Простой для понимания, любой объект, который вы можете зациклить, является итерируемым объектом..
как судить
Как определить, является ли объект Python итерируемым объектом? обычно используютisinstance()
функция для проверки, является ли объект итерируемым
from collections import Iterable
Резюме: Среди общих объектов данных в Python только числа не являются итерируемыми, строки, кортежи, списки, словари и т. д. — все они итерируются.
для петли для строки
Итерация по каждому элементу в строке печати за раз
for i in "python":
print(i)
p
y
t
h
o
n
Глядя на другой пример:
for i in "abcdefg":
print(i)
a
b
c
d
e
f
g
для цикла для списка
Будь то одноуровневый список или многоуровневый вложенный список, мы можем просмотреть и распечатать его:
# 单层列表
a = ["小明","小红","小张","小王"]
for i in a:
print(i) # 打印列表中的每个元素
小明
小红
小张
小王
# 嵌套列表
b = ["小明","小红","小张","小王",[19,20,18,23]]
for i in b:
print(i)
小明
小红
小张
小王
[19, 20, 18, 23]
В приведенном выше примере последний элемент печатается целиком, а что, если вы хотите напечатать его отдельно?
def qiantao(x): # 定义一个函数
for each in x: # 遍历每个原始列表中的每个元素
if isinstance(each, list): # 判断每个元素是否是列表:isintance
qiantao(each) # 如果是列表,递归执行函数qiantao()
else:
print(each) # 如果不是列表,就直接打印该元素
b = ["小明","小红","小张","小王",[19,20,18,23]]
# 调用函数,传入列表b
qiantao(b)
小明
小红
小张
小王
19
20
18
23
для цикла для кортежей
Цикл и список кортежей аналогичны:
t = ("小明","小红","小王")
for i in t:
print(i)
小明
小红
小王
словарь для цикла
Мы используем keys(), values(), items() и можем перебирать ключи, значения и пары ключ-значение словаря соответственно. нужно знать, это:Обход словаря по умолчанию означает обход ключей словаря., сначала определите словарь:
d = {"name":"Peter","age":20,"sex":"male","address":"china"}
keys
перебирать ключи словаря;
for i in d.keys(): # 遍历字典的键
print(i)
name
age
sex
address
for i in d: # 默认就是遍历键的取值
print(i)
name
age
sex
address
values
Перебрать значения словаря:
for i in d.values(): # 遍历字典的值
print(i)
Peter
20
male
china
items()
Перебирать ключи и значения словаря одновременно
for i in d.items(): # 遍历字典的值
print(i)
('name', 'Peter')
('age', 20)
('sex', 'male')
('address', 'china')
Извлеките ключи и значения словаря соответственно:
for k,v in d.items():
print(k + "--->" + str(v))
name--->Peter
age--->20
sex--->male
address--->china
для цикла функции диапазона
Функция диапазона — это встроенная функция в Python, используемая для генерации серии последовательных целых чисел, в основном используемая в циклах for.
range(start,stop,step)
- start: включает start, по умолчанию 0, если не написано, по умолчанию 0
- стоп: не содержит стоп, должен быть записан
- Шаг размера шага может быть положительным или отрицательным, по умолчанию равен 1, не может быть равен 0.
1. Базовый случай
range(10) # 生成的是可迭代对象
range(0, 10)
Начальное значение по умолчанию равно 0.
range(0,10)
range(0, 10)
Укажите начало с 1
range(1,10)
range(1, 10)
Вот как развернуть результаты в список:
list(range(10)) # 不包含10(尾部)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Укажите размер шага 2:
list(range(0,10,2)) # 不包含10,步长是2
[0, 2, 4, 6, 8]
Резюме: функция диапазона включает голову и не включает хвост.
for i in range(10):
print(i)
0
1
2
3
4
5
6
7
8
9
2. Найдите числа в пределах 100, которые делятся на 5:
for i in range(101): # 不包含101,0-100
if i % 5 == 0: # %表示求余数:余数为0则表示整除
print(i,end="、")
0、5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、100、
3. Гауссово суммирование
Найдите сумму всех чисел от 1 до 100
sum = 0
for i in range(1,101):
sum = sum + i # 每循环一次,sum就是这个数字
sum
5050
Найдите сумму нечетных чисел до 100:
sum = 0
# 步长为2,从1开始:1,3,5,7...
for i in range(1,101,2):
sum = sum + i
sum
2500
Найдите сумму четных чисел в пределах 100:
sum = 0
# 步长为2,从2开始:2,4,6,8...
for i in range(2,101,2):
sum = sum + i
sum
2550
несколько для заявлений
Оператор for также может использоваться в операторе for:
for i in ["python","java","html"]:
for j in i:
print(i.upper(),j) # upper():将字母变成大写
PYTHON p
PYTHON y
PYTHON t
PYTHON h
PYTHON o
PYTHON n
JAVA j
JAVA a
JAVA v
JAVA a
HTML h
HTML t
HTML m
HTML l
for i in [4,5,6]:
for j in [1,2,3]:
print(i*j) # 实现任意两个数的乘法
4 # 4*1
8 # 4*2
12 # 4*3
5 # 5*1
10 # 5*2
15 # 5*3
6 # 6*1
12 # 6*2
18 # 6*3
вывод
(1) Выше мы упоминали числа, которые делятся на 5: используйте для циклов и если решить
five = [] # 定义空列表
for i in range(101): # 不包含101,0-100
if i % 5 == 0: # %表示求余数:余数为0则表示整除
five.append(i) # 添加到列表中
five
[0,
5,
10,
15,
20,
25,
30,
35,
40,
45,
50,
55,
60,
65,
70,
75,
80,
85,
90,
95,
100]
(2) Как использовать понимание списка?
[x for x in range(101) if x % 5 == 0]
[0,
5,
10,
15,
20,
25,
30,
35,
40,
45,
50,
55,
60,
65,
70,
75,
80,
85,
90,
95,
100]
for-else
Возможно, вы слышали о if-else, но слышали ли вы об утверждениях for-else? Это также популярный пункт знаний о Python.
for i in range(5):
print(i)
else:
print("结束")
0
1
2
3
4
结束
То есть: после того, как оператор for завершится, оператор else все еще будет выполняться.
for i in []:
print(i)
else:
print("结束")
结束
В следующем примере, когда остаток i, разделенный на 3, равен 2, он выскочит обратно и завершит весь цикл for, а следующее остальное не будет выполнено.
for i in range(10):
print(i)
if i % 3 == 2:
break
else:
print("结束")
0
1
2
реализовать треугольный массив
for i in range(1,11):
for k in range(1,i):
print(k, end=" ")
print("\n")
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
Если мы хотим сделать наоборот, как мы можем это сделать?
for i in range(10,0,-1):
for k in range(1,i):
print(k, end=" ")
print("\n")
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
99 таблица умножения
Ниже приведен пример, иллюстрирующий, как реализовать таблицу умножения на 99, как играть с таблицей умножения на 99, см. предыдущие статьи.
for i in range(1,10):
for j in range(1,i+1): # 为了保证有4*4,也就是同个数字相乘的等式,需要让i出现,使用i+1
print('{}x{}={}'.format(j, i, i*j), end=" ") # end的结束符号用空格
print("\n")