Python基础学习之循环与判断

分手后的思念是犯贱 2022-12-10 01:28 241阅读 0赞

Python基础学习之循环与条件语句

文章目录

      1. while 循环
        • 1.1 while 循环的基本格式
        • 1.2 while 循环举例
        • 1.3 while 循环的嵌套
        • 1.4 while 循环的else语句
      1. for 循环
        • 2.1 for 循环的基本格式
        • 2.2 与range(), len() 配合;
      1. continue语句 & break语句 & pass 语句
        • 3.1 continue语句 & break语句 的区别
        • 3.2 pass语句
      1. if 条件判断
        • 4.1 if 语句的基本格式
        • 4.2 elif 语句的基本格式

1. while 循环

1.1 while 循环的基本格式

while 循环基本分为以下几步:

  1. 在while循环前,设置条件的初始值;
  2. while 循环, 格式为:while 条件:, 条件一般与初始值有关,句尾的冒号一定要有,否则会报错;
  3. 进入while 循环体内部,定义需要重复的代码;
  4. 在代码后,处理循环条件;

注意:

  1. 整个while 循环是一个完整的代码块;
  2. 循环结束后,初始条件改变后的数值还是存在的;
  3. 死循环,忘记在循环体内部处理循环条件的时候,就会出现死循环;
  1. # while 循环基本格式
  2. i = 0 # 初始条件设置
  3. while i<5: # while + 判断条件 + : 冒号一定要有
  4. print('这是我第%d次打印!'%i) # 需要重复执行的代码
  5. i +=1 # 条件处理,不加这句就会出现死循环; 对应注意点2
  6. print('执行完毕!')
  7. print(i) # 此时 i 的值变为了5;对应注意点3

1.2 while 循环举例

计算 0 ~ 100 之间所有数字的累计求和结果

  1. # 计算 0 ~ 100 之间所有数字的累计求和结果
  2. result = 0 # 0. 循环体外定义一个变量,存储最后的结果
  3. i = 0 # 1. 定义循环初始条件
  4. # 2. 开始循环
  5. while i <= 100:
  6. result += i # 每一次循环,都让 result 这个变量和 i 这个计数器相加
  7. i += 1 # 处理条件
  8. print("0~100之间的数字的累计求和结果 = %d" % result) # 输出结果:0~100之间的数字的累计求和结果 = 5050

1.3 while 循环的嵌套

while 循环支持嵌套,请参考下面例子:

打印 9*9 乘法表

完成 99乘法表分为两步,第一步:确定 每个乘法的位置; 第二部:在对应位置输出对应乘法式;

  1. # 99乘法表
  2. # 第一步:确定乘法等式的位置
  3. i = 0
  4. while i<10:
  5. print("*-*=* " *i,)
  6. i+=1

输出:

  1. *-*=*
  2. *-*=* *-*=*
  3. *-*=* *-*=* *-*=*
  4. *-*=* *-*=* *-*=* *-*=*
  5. *-*=* *-*=* *-*=* *-*=* *-*=*
  6. *-*=* *-*=* *-*=* *-*=* *-*=* *-*=*
  7. *-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=*
  8. *-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=*
  9. *-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=* *-*=*
  10. # 第二步:加入一个while 循环,修改换行方式;
  11. i = 1
  12. while i < 10:
  13. j = 1
  14. while j <= i:
  15. print("%d X %d = %d " % (i, j, i * j), end=' ')
  16. j += 1
  17. print('')
  18. i += 1

输出:

  1. 1 X 1 = 1
  2. 2 X 1 = 2 2 X 2 = 4
  3. 3 X 1 = 3 3 X 2 = 6 3 X 3 = 9
  4. 4 X 1 = 4 4 X 2 = 8 4 X 3 = 12 4 X 4 = 16
  5. 5 X 1 = 5 5 X 2 = 10 5 X 3 = 15 5 X 4 = 20 5 X 5 = 25
  6. 6 X 1 = 6 6 X 2 = 12 6 X 3 = 18 6 X 4 = 24 6 X 5 = 30 6 X 6 = 36
  7. 7 X 1 = 7 7 X 2 = 14 7 X 3 = 21 7 X 4 = 28 7 X 5 = 35 7 X 6 = 42 7 X 7 = 49
  8. 8 X 1 = 8 8 X 2 = 16 8 X 3 = 24 8 X 4 = 32 8 X 5 = 40 8 X 6 = 48 8 X 7 = 56 8 X 8 = 64
  9. 9 X 1 = 9 9 X 2 = 18 9 X 3 = 27 9 X 4 = 36 9 X 5 = 45 9 X 6 = 54 9 X 7 = 63 9 X 8 = 72 9 X 9 = 81

1.4 while 循环的else语句

else 语句最常见于 if 语句,else 语句的意思是:上面紧挨的一个循环或者判断结束后,紧接着执行的语句,在while循环中的举例如下:
注意:else 语句也是循环体的一部分,这是在不满足条件时才执行;

  1. i = 0
  2. while i<5:
  3. print('%d 小于五'%i)
  4. i +=1
  5. else:
  6. print('%d 等于五'%i) # 当 while 条件不满足时,执行;

输出:

  1. 0 小于五
  2. 1 小于五
  3. 2 小于五
  4. 3 小于五
  5. 4 小于五
  6. 5 等于五

2. for 循环

for 循环非常常用,for 循环可以遍历任何序列的项目,比如:列表,字典,字符串等;

2.1 for 循环的基本格式

  1. # for 循环
  2. for i in [1,2,3,4]: # 以列表为例;
  3. # 注意点:
  4. # 1. for 后面的变量可以是任意合法的变量名;
  5. # 2. 后面的循环体内,i 代表当前的循环值;
  6. # 3. 尾部的冒号一定要有;
  7. print(i) # 循环内容
  8. else:
  9. print("for 循环结束!") # 当循环结束时,调用else 语句;

输出:

  1. 1
  2. 2
  3. 3
  4. 4
  5. for 循环结束!

2.2 与range(), len() 配合;

2.2.1 与 range() 配合,遍历数字序列
range() 可以生成数列,我们可以指定数列的起始值,终止值,步长;定义方式:range(起始值,终止值,步长),我们通过for循环将range() ,生成的数列打印出来:

  1. for i in range(2,5):
  2. print(i,end=' ') # end=' ',打印以空格结尾,可以输出到一行,输出:2 3 4
  3. print('') # 换行
  4. for i in range(1, 10, 2):
  5. print(i,end=' ') # 输出:1 3 5 7 9

2.2.2 与 range(),len() 配合,遍历字符串,列表,字典等;

  1. s = [100,200,300]
  2. for i in range(len(s)):
  3. print('列表中的第%s个数为:%s' %(i,s[i]))

输出:

  1. 字典中的第0个数为:100
  2. 字典中的第1个数为:200
  3. 字典中的第2个数为:300

3. continue语句 & break语句 & pass 语句

3.1 continue语句 & break语句 的区别

在这里插入图片描述
以上例子的执行结果为:

  1. # 使用 continue 的运行结果:
  2. 4
  3. 3
  4. 1
  5. 0
  6. 循环结束。
  7. # 使用 break 的运行结果:
  8. 4
  9. 3
  10. 循环结束。

3.2 pass语句

为保证程序结构的完整性,我们会在一些时候使用pass语句; pass 语句是一个空语句,只是一个占位语句的存在;例如,当你定义一个函数的时候,还没有想好函数该如何书写;为避免程序报错,这时可以使用pass语句;举例:

  1. def func(a):
  2. pass # pass 占位语句,执行该函数时执行pass语句;

4. if 条件判断

4.1 if 语句的基本格式

  1. # if 语句
  2. if 1 < 2: # 条件为真!
  3. print('条件为真,执行!')
  4. else:
  5. print('条件为假!') # 输出:条件为真,执行!
  6. if 0 > 10: # 条件为假! 执行else语句
  7. print('条件为真,执行!')
  8. else:
  9. print('条件为假!') # 输出:条件为假!

注意:

  1. 条件是否成立,就是将条件转化成布尔类型,真则成立,假则不成立;
  2. else 语句不是必须的,没有else 语句也可以;
  3. if 后面的冒号 必不可少;

4.2 elif 语句的基本格式

有时,我们需要判断多种条件,此时可以使用 elif 语句,基本格式如下:

  1. if 条件语句1:
  2. 执行语句1……
  3. elif 条件语句2:
  4. 执行语句2……
  5. elif 条件语句3:
  6. 执行语句3……
  7. else:
  8. 执行语句4…… # 前面的条件全部不成立时,执行else语句;

注意:

  1. python 并不支持switch 语句,所以只能用 elif 来实现;
  2. 条件语句中可以使用 and, or ;举例如下:
  1. l=[1,7,12,26,15]
  2. for i in range(len(l)):
  3. print('当前值为:%s'%l[i])
  4. if l[i] < 5:
  5. print('我是一个小于(-∞,5)的数字')
  6. elif l[i]<10:
  7. print('我是一个介于[5,10)之间的数字')
  8. elif l[i]<15:
  9. print('我是一个介于 [10,15) 之间的数字')
  10. else:
  11. print('我大于等于15!')

问题点:以上代码,可以实现功能,但是有一个问题,就是条件的位置如果更换了,就会输出错误的结果;比如:

  1. l=[1,7,12,26,15]
  2. for i in range(len(l)):
  3. print('当前值为:%s'%l[i])
  4. if l[i] < 5:
  5. print('我是一个小于(-∞,5)的数字')
  6. elif l[i] < 15:
  7. print('我是一个介于 [10,15) 之间的数字')
  8. elif l[i]<10:
  9. print('我是一个介于[5,10)之间的数字')
  10. else:
  11. print('我大于等于15!')

这里更换了 elif l[i] < 15: 和 elif l[i]<10: 的位置,在数字7时,输出为:我是一个介于 [10,15) 之间的数字;
为避免这种问题,我们需要使用到 and 运算(or 运算的话,也是同理),代码变更为:

  1. # 改正代码
  2. l=[1,7,12,26,15]
  3. for i in range(len(l)):
  4. print('当前值为:%s'%l[i])
  5. if l[i] < 5:
  6. print('我是一个小于5 (-∞,5)的数字')
  7. elif l[i] < 15 and l[i] > 10:
  8. print('我是一个介于 [10,15) 之间的数字')
  9. elif l[i]<10 and l[i] > 5:
  10. print('我是一个介于[5,10)之间的数字')
  11. else:
  12. print('我大于等于15!')

输出:

  1. 当前值为:1
  2. 我是一个小于(-∞,5)的数字
  3. 当前值为:7
  4. 我是一个介于[510)之间的数字
  5. 当前值为:12
  6. 我是一个介于 [1015) 之间的数字
  7. 当前值为:26
  8. 我大于等于15
  9. 当前值为:15
  10. 我大于等于15

发表评论

表情:
评论列表 (有 0 条评论,241人围观)

还没有评论,来说两句吧...

相关阅读