Python基础-循环
什么是循环?
循环顾名思义就是重复做某件事,在程序中就是让程序重复执行某段逻辑
为啥用循环?
在某个逻辑需要被多次执行时,人力完成费时费力,计算机可以利用循环去处理多次重复执行的逻辑,达到省时省力的目的。
如何使用循环?
python中循环语法常见的有两种
- while循环机制,while循环也称之为条件循环
- for循环
while循环
- 语法:
while 条件:
代码1
代码2
...
#执行循序:判断条件是否为真,如果是真 执行循环体 为假不进入循环
- 举例1:打印3次hello csdn
i = 0
while i < 3:
print("hello csdn")
i = i + 1
举例2:验证登录时用户名密码是否在正确,不正确则重复输入
flag = True
while flag:
username = input("请输入用户名")
password = input("请输入密码")
if username == "csdn" and password == "123":
print("登录成功")
flag = False
else:
print("账号或密码错误,请重新输入")
while循环嵌套
i = 1
while i <= 3:
j = 1
while j <= 3:
print(i,j)
j += 1
i += 1
# 打印 1,2,3 三个数字两位的全排列
while 跳出循环
1)将条件置为False
# 形如上面的登录 当用户输入正确的账号和密码时 我们需要停止循环
n = True
u = "csdn"
p = "123"
while n:
if u == "csdn" and p = "123":
n = False # 将循环的条件置为假,达到结束循环的目的
2)利用break关键字停止循环
当
# 打印1,2,3,4
i = 1
while True:
if i == 5:
break;
else:
print(i)
i += 1
while 和 break
ps:利用break停止嵌套while循环时,break会停止所在循环及之内的循环,如下当外层循环i == 3时会被break 此时内层的j也随之停止。
i = 1
while i <= 3:
j = 1
while j <= 3:
print(i,j)
j += 1
i += 1
if i == 3:
break
#结果
#1 1
#1 2
#1 3
#2 1
#2 2
#2 3
while 和 continue
continue关键字表示停止当前次循环,继续下次循环
例如,我们在打印1到10的数字时 不想打印数字4,则有:
i = 0
while i < 10:
i += 1
if i == 4:
continue
else:
print(i)
while 和 else
while else表示 当while循环正常循环结束后,执行else内的代码。所谓正常结束指的是不被break强制结束。
while else我们可以用来确认while循环是否正常结束
# 正常结束后,打印“以上是1到10的打印”
i = 1
while i <= 10:
print(i)
i += 1
else:
print("以上是1到10的打印")
# 被break,则不会打印“以上是1到10的打印”
i = 1
while i <= 10:
print(i)
i += 1
if i == 4:
break
else:
print("以上是1到10的打印")
while 和 死循环
死循环指的是循环一直进行,没有停止,即循环条件一直为真
while True:
print("条件一直为真")
while 练习
打印99乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(str(j) + " * " + str(i) + " = " + str(i * j),end = '\t')
j += 1
print()# 换行
i += 1
# 1 * 1 = 1
# 1 * 2 = 2 2 * 2 = 4
# 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
# 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
# 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
# 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
# 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
# 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
# 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
for循环
即循环可迭代对象
- 语法
#可迭代对象目前理解为包含多个值的类型
#运行原理:从可迭代对象中取出一个值给变量名,执行下面代码,然后又取出第二的值...直到值取完
for [变量名] in [可迭代对象]: # 此时只需知道可迭代对象可以是字符串\列表\字典
代码1
代码2
代码3
- 举例
#例
for item in ['a','b','c']:
print(item)
# 运行结果
a
b
c
# 参照例子来介绍for循环的运行步骤
# 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码
# 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码
# 步骤3: 重复以上过程直到列表中的值读尽
for 循环嵌套
a = [1,2,3]
b = [1,2,3]
for i in a:
for j in b:
print(i,j)
#打印 1,2,3 三个数字两位的全排列
for 跳出循环
- 可迭代对象最后被取完:例如列表所有元素都被循环一遍即循环停止
- break停止循环:循环体执行到break
for 和 break
和while相似,当循环逻辑中有break,则停止循环
for i in [1,2,3]:
if i == 2:
break
else:
print(i)
# 结果为1,当i为2时循环被停止
for 和 continue
和while相似,continue跳过当前次循环,继续下次循环
for i in [1,2,3]:
if i == 2:
continue
else:
print(i)
# 结果为
#1
#3
# 因为i为2的那次循环被跳过了,但是循环没停止
for 和 else
当for循环正常结束(即没有被break),则执行else内的代码块
### 无break
for i in [1,2,3]:
print(i,end = '\t')
else:
print("循环正常结束")
#输出为
#1 2 3
# 循环正常结束
### 有break
for i in [1,2,3]:
if i == 2:
break
print(i)
else:
print("循环正常结束")
#输出为
#1
for 和 range
当可迭代对象所需值很大时,我们不可能手写1K甚至1W和数值,此时可以用range()函数。
- range(n):返回[0,n)区间整数
#打印1到10
for i in range(10):
print(i+1) # range返回的范围是0开始到参数-1,所以此处要加1
- range(n.m):返回[n,m)区间整数
for i in range(1,10):
print(i)
for 和 range与len组合使用
len():可以统计长度, 我们可以配合 range, 循环出索引,然后通过索引取值
l = [111,222,333,444,555]
for i in range(len(l)):
print(f"{i}:{l[i]}")
# 0:111
# 1:222
# 2:333
# 3:444
# 4:555
for 练习
打印99乘法表
for i in range(1,10):
for j in range(1,i+1):
print(str(j) + " * " + str(i) + " = " + str(i * j),end = '\t')
print()
for 循环与 while 循环的区别
- 相同:
都是循环, 循环做的事情两种方式都可以做, 主要看应用场景, 看哪个使用的更方便 - 不同
1.while 循环称之为条件循环, 循环的次数取决于条件何时变为假
2.for 循环称之为遍历循环(取值循环等等), 循环的次数取决于 in 后面包含的值的个数