Skr-Eric的Python课堂(五)——Python的循环语句介绍

循环语句:

有两条循环语句:
  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的编程课堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值