python基础语言学习之——循环
循环结构 - 让代码重复执行
工具:for、while
一、for循环
1、for循环
1)语法:
for 变量 in 序列: 循环体
2)说明
for、in - 关键字;固定写法
变量 - 合法的变量名
序列 - 容器型数据类型对应的数据,例如:range、字符串、列表、字典、元组、集合、迭代器、生成器
:
循环体 - 结构上,和for保持一个缩进的一条或者多条语句(至少一条)
? 逻辑上,需要重复执行的代码
3)执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。(for循环循环次数由序列决定)
案例:
for x in 'abcd':
print(x, '你好')
结果:
a 你好
b 你好
c 你好
d 你好
案例:
num = [10,89,45,23]
for x in num:
print(x * 10)
结果:
100
890
450
230
2、range函数 - 创建一个等差数列(左闭右开区间)
1)range(N) - 产生[0,N)的等差数列,差是1;range(5) -> 0,1,2,3,4
2)range(M,N) - 产生的[M,N)的等差数列,差是1;range(5,15) -> 5,6,7,8,9,10,11,12,13,14
3)range(M,N,step) - 产生的[M,N)的等差数列,差是step;range(3,13,3) --> 3,6,9,12
3、积累求和
求和套路:
第一步:在循环外面定义一个变量来保存最后的和(变量默认值是0)第二步:通过循环一次获取所有需要要求的对象
第三步:在循环体中获取到一个求和的对象,就往保存和的变量中加一个数据(+=)
最后:循环结束的时候保存和的变量中的数据就是最后的和
案例:求1+2+3+4+…+100的和
sum = 0
for x in range(1,101):
#sum = sum + x
sum += x
print(sum)
输出:
5050
练习:能100 ~ 200中能被7整除的的偶数的个数
# 方法1
count = 0
for i in range(100,201,2):
if i % 7 == 0:
count += 1
print(count)
# 方法2,找步长为7的数
count = 0
for i in range(105,201,7):
if i % 2 == 0:
count += 1
print(count)
2、while循环
1.用法
1)语法:
while 条件语句:
? 循环体
2)执行过程:
判断条件语句是否为True,为true就执行循环体。直到条件语句的结果是False,真个循环直接而结束。
(先判断条件语句是否为True,为True执行循环体,执行完循环体再循环条件语句是否为True,为True在执行循环体,…以此类推,直到条件语句为false整个循环结束)
-
for循环while循环的选择
基本原则:能用for循环解决的问题都使用for循环、for循环解决不了的才用while循环
for解决不了的问题:循环次数不确定(程序员在写代码的时候无法确定循环次数 - 次数由使用者行为05-决定)
案例:提示用户输入密码,直到输入正确为止
pw =123456
value = None
while value != pw:
value = input('请输入密码:')
结果:
请输入密码:123
请输入密码:123abc
请输入密码:abc
请输入密码:123
...
请输入密码:123456
(结束)
3、continue和break
continue和break是关键字,只能在循环体中使用
-
continue - 结束一次循环
执行循环体的时候如果遇到了continue纳摩这次循环结束,直接进入下一次循环
for i in range(10):
if i % 2 == 0:
continue
print(i)
-
break - 结束整个循环
for i in range(10):
if i == 3 :
break
print(i)
3.当while遇到break
while循环使用的固定结构: while True: x需要重复执行的条件 if 循环结束条件: break
pw = 123456
while True:
value = input('请输入密码:')
if value == pw:
break
练习:猜数字游戏
系统随机产生一个0 ~ 100的整数,然后提示用户输入数字,
from random import randint
value = randint(0,100) #创建一个0到100的随机整数,并且保存到value变量中
count = 0
while True:
num = input('请输入一个(0~100)数:')
if num < value:
print('小了,再大点')
elif num > value:
print('大了,再小点')
else:
print('猜对了')
break
4、完整的循环结构
1)完整的for循环 for 变量 in 序列: 循环体 else: 代码段
2)完整的while循环: while 条件语句: 循环体 else: 代码段
else的作用
-
else存在不会影响原来的执行 2.如果前面的循环时自然死亡的再循环结束后会执行else中的代码段,如果循环是因为遇到break而结束,else中的代码段不会执行 案例: for x in range(5):
print('=====')
else:
print('----')
sum = 0
for x in range(5):
sum += x
if x == 3:
print(x)
else:
print('')
|