Python基础学习之循环与判断

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

1. while 循环

1.1 while 循环的基本格式

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

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

注意:

  1. 整个while 循环是一个完整的代码块;
  2. 循环结束后,初始条件改变后的数值还是存在的;
  3. 死循环,忘记在循环体内部处理循环条件的时候,就会出现死循环;
# while 循环基本格式

i = 0    # 初始条件设置

while i<5:    # while + 判断条件 + : 冒号一定要有
    print('这是我第%d次打印!'%i)    # 需要重复执行的代码
    i +=1    # 条件处理,不加这句就会出现死循环; 对应注意点2

print('执行完毕!') 
print(i)    # 此时 i 的值变为了5;对应注意点3

1.2 while 循环举例

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

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

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

1.3 while 循环的嵌套

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

打印 9*9 乘法表

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

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

输出:

*-*=*  
*-*=*  *-*=*  
*-*=*  *-*=*  *-*=*  
*-*=*  *-*=*  *-*=*  *-*=*  
*-*=*  *-*=*  *-*=*  *-*=*  *-*=*  
*-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  
*-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  
*-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  
*-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  *-*=*  
# 第二步:加入一个while 循环,修改换行方式;
i = 1
while i < 10:
    j = 1
    while j <= i:
        print("%d X %d = %d  " % (i, j, i * j), end='  ')
        j += 1
    print('')
    i += 1

输出:

1 X 1 = 1    
2 X 1 = 2    2 X 2 = 4    
3 X 1 = 3    3 X 2 = 6    3 X 3 = 9    
4 X 1 = 4    4 X 2 = 8    4 X 3 = 12    4 X 4 = 16    
5 X 1 = 5    5 X 2 = 10    5 X 3 = 15    5 X 4 = 20    5 X 5 = 25    
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 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 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 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 语句也是循环体的一部分,这是在不满足条件时才执行;

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

输出:

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

2. for 循环

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

2.1 for 循环的基本格式

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

输出:

1
2
3
4
for 循环结束!

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

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

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

print('')     # 换行
for i in range(1, 10, 2):
    print(i,end=' ')     # 输出:1 3 5 7 9

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

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

输出:

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

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

3.1 continue语句 & break语句 的区别

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

# 使用 continue 的运行结果:
4
3
1
0
循环结束。

# 使用 break 的运行结果:
4
3
循环结束。

3.2 pass语句

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

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

4. if 条件判断

4.1 if 语句的基本格式

# if 语句
if 1 < 2:  # 条件为真! 
    print('条件为真,执行!')
else:
    print('条件为假!')      # 输出:条件为真,执行!

if 0 > 10:  # 条件为假! 执行else语句
    print('条件为真,执行!')
else:
    print('条件为假!')     # 输出:条件为假!

注意:

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

4.2 elif 语句的基本格式

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

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

注意:

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

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

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

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

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

输出:

当前值为:1
我是一个小于(-∞,5)的数字
当前值为:7
我是一个介于[510)之间的数字
当前值为:12
我是一个介于 [1015) 之间的数字
当前值为:26
我大于等于15!
当前值为:15
我大于等于15

猜你喜欢

转载自blog.csdn.net/weixin_47139649/article/details/108751196