循环语句:
有两条循环语句:
while 语句
for 语句
问题:
输入一个整数n,写程序打印如下n行字符串
这是第1行
这是第2行
这是第3行
这是第4行
...
这是第n行
如何让一条语句重复执行多次?
如果i是一个变量,
print("这是第", i, '行')
while 语句:
作用:
根据一定条件,重复的执行一条语句或多条语句
语法:
while 真值表达式:
语句块1
else:
语句块2
说明:
1.先判断真值表达式,为True或False
2. 如果为True,则执行语句块1,再回到第一步
3. 如果为False,则执行语句块2,然后结束此while的执行
4. else 子句部可以省略(同if类似)
示例:
# 打印20行hello!
i = 1 # i变量用于控制循环条件
while i <= 3: # 如果条件为True
print("hello!")
i += 1 # 改变循环条件以便让循环终止
else:
print("这是else子句,此时将离开while语句")
print("此时i的值是:", i) # 4
while 语句注意事项:
要控制循环真值表达式的值来防止死循环
通常用真值表达式内的循环变量来控制循环条件
通常在循环语句块内改变循环变量来控制循环次数和变量走向
while 语句的嵌套
while 语句本身是语句,和其它语句一样,可以嵌套到任何复合语句中
示例:
while 真值表达式:
...
while 真值表达式2:
...
else:
...
else:
...
break 语句
作用:
用于循环语句(while, for语句)中,用来终止当前循环语句的执行
语法:
break
说明:
1. 当break语句执行后,此循环语句break之后的语句将不再执行
2. break语句通常和if语句组合使用
3. break语句终止循环时else子句的语句将不会执行
4. break语句只能终止当前循环语句的执行,如果有循环嵌套时,不会跳出嵌套的外重循环
示例:
i = 1
while i <= 10:
j = 1
while j <= 20:
print(j, end=' ')
if j == 15:
break
j += 1
print()
i += 1
print("程序结束")
死循环
死循环是指条件一直成立的循环
死循环通常用break语句来终止循环
死循环的else子句永远不会执行
for 语句
作用:
用来遍历可迭代对象的数据元素
可迭代对象是指能依次获取数据元素的对象
可迭代对象包括:
字符串 str
---以下后面会讲---
列表 list
元组 tuple
...
for 语法:
for 变量列表 in 可迭代对象:
语句块1
else:
语句块2
for 语句说明:
else子句部分可以省略
当在循环内部用break终止循环时,else子句部分不会执行
示例:
# 输入一段字符串,判断这个字符串内是否有'H'这个字符,并
# 打印出结果
s = input("请输入: ")
for ch in s:
if ch == 'H':
print(s, "中含有字符'H'")
break
else:
print(s, "中不含有字符'H'")
range 函数
range(stop) 用来生成0~stop区间内的整数,直到stop为止(不包含stop)
range(start, stop[, step]) 用来生成start~stop区间内的整数,直到stop为止(不包含stop),每次生成整数后移动step
格式详见:
>>> help(range)
作用:
用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)
说明:
range返回的对象可以有for语句来进行依次迭代访问取出其中的整数
示意:
range(4) # 生成 0, 1, 2, 3
range(3, 6) # 生成 3, 4, 5
range(1, 10, 2) # 生成 1, 3, 5, 7, 9
range(5, 0, -2) # 生成 5, 3, 1
range(4, 0) # 空
for 语句变量可能不被创建的问题:
for x in range(4, 0):
print(x)
print('x绑定', x)
for 注意问题:
i = 6
for x in range(1, i): # for x in range(1, 6)
print('x =', x, 'i=', i)
i -= 1
# 请问打印结果是什么?
for 语句的嵌套:
for x in "ABC":
for y in "123":
print(x + y)
continue 语句
作用:
用于循环语句(while,for)中,不再执行本次循环continue之后的语句,重新开始一次新的循环
语法:
continue
说明:
1. 在while语句中执行continue,将会直接跳转到while语句的真值表达式处重新判断循环条件
2. 在 for 语句中执行continue语句,将会从可迭代对象中取下一个元素,绑定变量后再次进行循环
示例:
# 打印10以内的奇数
for x in range(10):
if x % 2 == 0: # 是偶数,跳过
continue
print(x)
课后习题:
1. 用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,打印出相应的直角三角形
如:
请输入三角形的宽度: 4
1) 打印如下三角形:
*
**
***
****
2) 打印如下三角形:
*
**
***
****
3) 打印如下三角形:
****
***
**
*
4) 打印如下三角形:
****
***
**
*
2. 输入一个正整数(代表树干的高度)
打印如下一棵圣诞树
如:
输入: 2
打印:
*
***
*
*
如:
输入: 3
打印:
*
***
*****
*
*
*
3. 算出100~999之间的水仙花数(Narcissistic Number)
水仙花数是指百位的3次方 + 十位的3次方 + 个位的3次方等于原数的整数
例如:
153 = 1**3 + 5**3 + 3 ** 3
答案:
153 370 ...
想要看更多的课程请微信关注SkrEric的编程课堂