【python学习笔记】10 控制语句最全总结

本系列为自己学习Python的笔记,如有误,欢迎大家指正

选择结果

选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分支、双分支、多分支。流程图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9jFYUifK-1610702861337)(.\images\image-20210115152646962.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RcXKw5zK-1610702861353)(.\images\image-20210115152744007.png)]

单分支选择结构

if语句单分支结果的语法形式如下:

if 条件表达式:

​ 语句/语句块

其中:

  1. 条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等
  2. 语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致
num = input('请输入一个数字:')
if int(num)<10:
    print(num)

条件表达式详解

在选择和循环结构中,条件表达式的值为False的情况如下:

False 0 0.0 空值None、空序列对象(空列表 空元祖 空集合 空字典 空字符串) 、空range对象、空迭代对象

其他情况,均为True.

if 3: #整数作为条件表达式
    print('ok')    
    
a = [] #列表作为表达式 空列表为False
if a:
    print('空列表 False')    
    
s = 'False' #非空字符串
if s:
    print('非空字符串')    
    
c = 9
if 3<c and c<20:
    print("3<c and c<20")


if True: #布尔值
    print("True")  

条件表达式中,不能有赋值操作符 =

双分支选择结构

if 条件表达式:

​ 语句块/语句

else:

​ 语句

num = input('请输入一个数字')
if int(num)<10:
    print(num)
else:
    print('数字太大')    

三元条件运算符

python提供了三元运算符,用来在某些简单双分支赋值情况,三元条件运算符语法:

条件为真的值 if (条件表达式) else 条件为假时的值

num = input('请输入一个数字')
print(num if int(num)<10 else '数字太大')  

多分支选择结构

if 条件表达式1:

​ 语句/语句块

elif 条件表达式2:

​ 语句/语句块

else:

​ 语句/语句块

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zI3Enszj-1610702861355)(.\images\image-20210115160316557.png)]

score = int(input('请输入分数'))
grade = ''
if score<60:
    grade = '不及格'
elif score>=60 and score<70:
    grade='及格'
elif score>=70 and score<80:
    grade = '良好'   
else:
    grade = '优秀'    
print('分数是{0},等级是{1}'.format(score,grade))   

选择结构嵌套

选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩进,因为缩进决定了代码的从属关系。

if 表达式1:

​ 语句块1

​ if 表达式2:

​ 语句块2:

​ else:

​ 语句块

else:

​ 语句块

循环结构

循环结构用了重复执行一条或多条语句。表达式的逻辑:如果符合条件,则反复执行循环体中的语句。在每次执行完后都会判断一次条件是否为True,如果为True则循环重复执行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IIricoFW-1610702861357)(.\images\image-20210115161743080.png)]

循环体里面的语句至少应该包含改变条件表达式的语句,以使循环趋于结束,否则,就会变成一个死循环。

while循环

while 判断条件(condition):
 执行语句(statements)……
n = 100
 
sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1
 
print("1 到 %d 之和为: %d" % (n,sum))

无限循环

我们可以通过设置条件表达式永远不为 false 来实现无限循环

var = 1
while var == 1 :  # 表达式永远为 true
   num = int(input("输入一个数字  :"))
   print ("你输入的数字是: ", num)
 
print ("Good bye!")

可以使用 CTRL+C 来退出当前的无限循环。

无限循环在服务器上客户端的实时请求非常有用。

for循环和可迭代对象遍历

for循环通常用于可迭代对象的遍历。for循环的语法格式如下:

for 变量 in 可迭代对象:

​ 循环体语句

可迭代对象

  1. 序列:字符串 列表 元祖
  2. 字典
  3. 迭代器对齐
  4. 生成器对象
for x in list('slp'):
    print(x)
    
d = {
    
    'name':'slp','age':18,'address':'bj'}
for x in d: #遍历所有的key
    print(x)
    
for x in d.keys():#遍历字典所有的key
    print(x)
    
for x in d.values():#遍历字典所有的value
    print(x)
        
for x in d.items():#遍历字典所有的键值对
    print(x)    
    

range对象

range对象是一个迭代器对象,用了产生指定范围的数字序列,格式为:range(start,end [,step])

    
sum_all=0
sum_even=0
sum_odd=0
for num in range(101):
    sum_all +=num
    if num%2 ==0:
        sum_even+=num
    else:
        sum_odd+=num
        
print(sum_all,sum_even,sum_odd)    

嵌套循环

一个循环内可以嵌入另一个循环,一般称为嵌套循环,或者多重循环

eg:打印99乘法表:

for m in range(1,10):
    for n in range(1,m+1):
        print(m,'*',n,'=',m*n ,end='\t')
    print('')
    

break语句

break语句可用于while和for循环,用了结束整个循环。当有嵌套时,break语句只能跳出最近一层的循环

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nB6cRFES-1610702861364)(.\images\E5A591EF-6515-4BCB-AEAA-A97ABEFC5D7D.jpg)]

while True:
    a = input('输入Q退出')
    if a.upper() == 'Q':
        print('退出')
        break
    else:
        print('继续')

continue语句

continue用于结束本次循环继续下一次,嵌套的时候也是应用与最近的一次循环。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aqfENPtv-1610702861366)(.\images\8962A4F1-B78C-4877-B328-903366EA1470.jpg)]

n = 5
while n > 0:
    n -= 1
    if n == 2:
        continue
    print(n)
print('循环结束。')
empNum = 0
salarySum = 0;
salarys = []       
while True:
    s = input('请输入员工的工资(q或Q结束)')
    if s.upper() =='Q':
        print('录入完成 退出')
        break;
    if float(s)<0:
        continue;
    empNum+=1
    salarys.append(float(s))
    salarySum +=float(s)
    
print('员工数{0}'.format(empNum))
print('录入薪资',salarys)
print('平均薪资{0}'.format(salarySum/empNum))

pass语句

Python pass是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句,

循环代码优化

  1. 尽量减少循环内部不必要的计算
  2. 嵌套循环中,尽量减少内层循环的计数,尽可能向外提
  3. 局部变量查询较快,尽量使用局部变量

其他优化手段

  1. 连接多个字符串,使用join而不使用+
  2. 列表进行元素插入和删除,尽量在尾部操作

使用zip()并行迭代

我们可以通过zip()函数对多个序列进行并行迭代,zip()函数再最短序列用完的时候会停止

names = ('a','b','c')
ages =(16,10)
jobs = ('teacher','programmer','drive')
for name,age,job in zip(names,ages,jobs):
    print("{0}--{1}--{2}".format(name,age,job))

微信搜一搜【梓莘】或扫描下方二维码交个朋友共同进步。文章持续更新中。目前在整理python百战学习笔记,期待后续更多的更新哦。

猜你喜欢

转载自blog.csdn.net/weixin_51656605/article/details/112680115