day4-循环结构
摘要
1. for循环
1.1 循环的作用:让部分操作重复执行
1.2 怎么使用for循环
语法
for 变量 in 序列:
循环体说明
- for、in - 关键字,固定写法
- 变量 - 变量名,需要满足变量名的要求(没有声明也可以)
- 序列 - 容器类型的数据,python中常见的序列:字符串、列表、元祖、集合、字典、迭代器、生成器、range
- : - 固定写法
- 循环体 - 和for保持一个缩进的一条或者多条语句。(需要重复执行的代码)
- 执行过程
- 让变量去序列中取值,一个一个的取,取完为止:每取一个值执行一次循环体。(序列中数据的个数,决定了循环的次数)
for a in 'python':
print(a)
print('===')
""
a = 'p', print(a),print('===')
a = 'y', print(a),print('===')
...
a = 'n', print(a),print('===')
循环结束
"""
1.3 range函数
- range是python内置的一个用来生成数字序列的函数,在python2.x中range由xrange代替
- 作用:1.结合for循环控制循环次数 2.结合for循环产生指定范围的数字序列
- range(N) - 产生数字范围:0 ~ N-1 (这里的N是任意的正整数,相当于range(0,N))
- range(M,N) - 产生数字范围:M ~ N-1 (这里的M和N是整数,并且N>M)
- range(M,N,step) - 产生数字范围:M ~ N-1,每次增加step (注意:step是正整数N>M;step是负整数N<M)
- 注意*:N对应的数字都是取不到的,最后取N前面那个数
print('------------------')
for x in range(10):
print(x)
print('------------------')
for x in range(100,1000):
print(x)
print('------------------')
for x in range(0,100,2):
print(x)
练习1:使用for循环计算1+2+...+100
print('------------------')
n = 0 # 保存和的变量
for x in range(1, 101):
n += x
print(n)
练习2:打印出所有的水仙花数。(一个三位数,各个立方和==数本身)
print('------------------')
n = 0
for x in range(100,1000):
if (x%10)**3 + (x//10%10)**3 + (x//100)**3 == x:
print(x)
n+=1
print(n)
练习3:统计100内个位上的数是5的个数
print('------------------')
n = 0
for x in range(100):
if x%10 == 5:
print(x)
n+=1
print(n)
2. while循环
2.1 怎么使用while
语法
while 条件语句:
循环体说明
- while - 关键字,固定写法
- 条件语句 - python支持的类型的数据、已经声明过的变量、除了赋值符号以外的运算表达式
- : - 固定写法
- 循环体 - 和while保持一个缩进的一条或者多条语句;(循环体会重复执行)
- 执行过程
- 先判断条件语句是否为True,如果为True就执行循环体;执行完循环体在判断条件语句是否为True,如果为True又执行循环体;以此类推,直到条件语句结果为False,循环句结束,直到执行循环后面的其他语句。
i = 0
while i < 5:
print('+++')
i += 1
print('===')
练习1:1+2+...+100
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print(sum)
练习2:打印出所有的水仙花数。(一个三位数,各个立方和==数本身)
i = 100
count = 0
while i < 1000:
ge = i % 10
shi = i // 10 % 10
bai = i // 100
if ge**3 + shi**3 + bai**3 == i:
print(i)
count += 1
i += 1
print(count)
练习3: while循环控制数字的产生
print('============')
num = 100
while num >= 0:
print(num)
num -= 2
2.2 for循环和while循环的关系
- for循环能做的事情while循环都能做,while循环能做到的事情,for不一定能做到
循环次数确定的时候用for循环;循环次数不确定和死循环的时候用while循环
练习1: 程序能够不断的进行输入操作,直到输入的内容是0为止
num = int (input('请输入一个数字:'))
while num != 0:
num = int (input('你输入数字不为0,请重新输入:'))
3. break-continue-else
3.1 continue
- continue是循环体中的关键字,用来结束当次循环。当执行循环体的时候遇到continue,当次循环结束,循环体中continue后面的语句不在执行。直接进入下次循环的判断
for x in range(5):
print(x)
print('=====')
continue
print('+++++++++')
sum = 0
for x in range(101):
if x % 2 == 1:
continue
sum += x
print(sum)
x = 0
while x < 101:
if x % 3 == 0:
x += 1
continue
print(x)
x += 1
3.2 break
- break是循环体中的关键字,用来直接结束整个循环,当执行循环体的时候,遇到了break,整个循环直接结束,程序直接执行循环后边的其他语句
print('=============')
for x in range(10):
print(x)
print('=====')
break
print('+++++')
print(x)
print('结束')
"""
while True:
循环操作
if 循环结束条件:
break
"""
while True:
value = input ('请输入一个数:')
if value == '0':
break
3.3 else
for的完整结构
for 变量 in 序列:
循环体
else:
代码块
其他语句while的完整结构
while 条件语句:
循环体
else:
代码块
其他语句
当循环自然死亡(for中变量将序列中的数据取完了;while后边的条件语句的值为False),else后面的代码块就会执行
如果循环是因为遇到了break而结束的,else后面的代码就不会执行
应用:可以通过else来检测循环有没有遇到break
print('================')
for x in range(10):
print(x)
if x % 4 == 0:
break
else:
print('循环自然死亡')
print('其他语句')