首页 > 编程语言 >4. python 流程控制

4. python 流程控制

时间:2023-04-18 10:35:13浏览次数:38  
标签:控制 20 python 流程 list value range 循环 print


一、 顺序结构

代码从上到下一行行执行,没有任何判断和跳转

二、if分支结构

  • python中流程控制须格外注意缩进,否则可能遇到各种奇奇怪怪的错误
  • else if的写法是elif
  • 注意if,else,elif后面加冒号:
  • False、0、各种表示空的值(None,"",'',(),[],{}),在if判断时都为假;但注意" ",' '(一个空格)为真
  • pass语句相当于一个占位符,表示不做任何事

if语句分支形式

a=input("Input a value:")
if int(a) > 20:
    print("value > 20")
a=input("Input a value:")
if int(a) > 20:
    print("value > 20")
else:
    print("value <= 20")
a=input("Input a value:")
val=int(a)
if val > 20:
    print("value > 20")
elif val < 20:
    print("value < 20")
else:
    print("value = 20")

三、 断言

与if类似,若判断为True则继续执行,若判断为false则报错AssertionError

  • 注意断言后面不需要冒号:
  • 断言后面执行的语句也不需要缩进
a=input("Input a value:")
val=int(a)
assert val > 20
print("value > 20")

#输出
Input a value:30
value > 20

Input a value:10
Traceback (most recent call last):
  File "E:/pytest02/var.py", line 9, in <module>
    assert val > 20
AssertionError

四、 循环结构

  • 同样同样,注意缩进
  • 注意循环判断语句后面也有个冒号:

1. while循环

i=0
while i<5:     #注意冒号:
    print(i)
    i+=1

使用while循环遍历元组/列表

a_tuple=(3,6,432,876,132)
i=0
while i<len(a_tuple):
    print(a_tuple[i]+1)
    i+=1

2. for-in循环

for-in循环专门用于遍历字符串、范围、列表、元组、字典等可迭代对象

for 变量 in 字符串|范围|列表|元组|字典:
    statements

小例子:

#阶乘计算
mx=5
result=1
for i in range(1,mx+1):
    result *= i
print(result)
#遍历元组
a_tuple=(2,4,5,7)
for i in a_tuple:
    print(i)

#另一种方法
for ind in range(0,len(a_tuple)):
    print(a_tuple[ind])
#遍历字典,可以分别用items(),keys,values()三种方法
a_dict={'a':2,'b':4,'c':5}
for key,value in a_dict.items():
    print("keys: ",key)
    print("values: ", value)

for key in a_dict.keys():
    print("keys: ",key)
    print("values: ", a_dict[key])

for value in a_dict.values():
    #这样没法取key值
    print("values: ",value)

for-in循环中变量的值只由in后面可迭代对象的值控制,在程序中对其赋值不影响循环次数(也不建议这样做)

for i in range(1,5):
    i=20    #不会影响循环次数
    print(i)

#输出
20
20
20
20

3. for表达式

语法格式

[表达式 for 变量 in 可迭代对象]
或者
(表达式 for 变量 in 可迭代对象)

与普通for循环的区别:

  • 在for关键词前定义一个表达式,该表达式中通常会包含计数器
  • for表达式没有循环体,因此不需要冒号:
  • 使用[]的for表达式最终返回的是列表,也被称为列表推导式
  • 使用()的for表达式最终返回的是生成器,也被称为生成器推导式
a_range=range(5)
a_list=[x*x for x in a_range]
print(a_list)

#输出
[0, 1, 4, 9, 16]

可以在for表达式后添加if条件,此时只有符合条件的元素才会执行表达式

a_range=range(5)
a_list=[x*x for x in a_range if x%2 == 0]
print(a_list)

#输出
[0, 4, 16]

下面是使用()的for表达式返回生成器的例子

a_range=range(5)
c_generator=(x*x for x in a_range if x%2 == 0)
for i in c_generator:   #要多一个循环来输出
    print(i,end='\t')

#输出
0	4	16

for表达式可以使用多个循环,效果同嵌套循环(较难理解,少用)

d_list=[(x,y) for x in range(5) for y in range(4)]
print(d_list)

#相当于
d_list2=[]
for x in range(5):
    for y in range(4):
        d_list2.append((x,y))
print(d_list2)

#输出
[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3)]

4. 常用函数

zip()函数——将两个列表“压缩”成一个zip对象(可迭代对象)。这样就可以使用一个循环遍历两个列表

a=['a','b','c']
c=[0.1,0.2]
my_list=[x for x in zip(a,c)]
print(my_list)

#输出
[('a', 0.1), ('b', 0.2)]

reversed()函数——反向可迭代对象

a=[2,5,7,4,8,4,7]
my_list=[x for x in reversed(a)]
print(my_list)

#输出
[7, 4, 8, 4, 7, 5, 2]

5. 控制循环结构

break——在符合条件时立即结束本次循环

a=[2,5,7,4,8,4,7]
for i in a:
    if i%2 == 0:
        print(i)
        break

#输出
2

continue——在符合条件时忽略本次循环剩下的语句

a=[2,5,7,4]
for i in a:
    print(i)
    if i%2 == 0:
        continue
    print("输出continue后语句")

#输出
2
5
输出continue后语句
7
输出continue后语句
4

return——用于从包围它的最直接的方法、函数或匿名函数返回。一旦在循环体内执行到return时,return语句就会结束该函数或方法

def test():
    # 外层循环
    for i in range(5):
        for j in range(5):
            print("i的值为:%d,j的值为:%d" % (i,j))
            if j == 1:
                return
            print("return后输出语句")

#调用函数
test()

#输出
i的值为:0,j的值为:0
return后输出语句
i的值为:0,j的值为:1

 

标签:控制,20,python,流程,list,value,range,循环,print
From: https://blog.51cto.com/u_13631369/6202553

相关文章

  • 3. python 列表、元组和字典
    一、序列简介序列是一种包含多项数据的数据结构python常见序列类型包括字符串、元组、列表等其中字符串与元组是不可变的,而列表是可变的元组创建列表使用(),而列表使用[]>>>my_tuple=('fff',20,'dddd')>>>print(type(my_tuple))<class'tuple'>>>>print(my_tuple)('fff�......
  • 2. python 变量和简单类型
    一、注释python允许在任何地方插入空字符串与注释,但不能插入到标识符和字符串中间python注释有两种形式单行注释:以#开头的一行多行注释:被三个单引号或双引号括起来的多行#这是一行注释'''这也是一行注释用三个单引号注释可多行内容'''"""这还是一行注释用三个双引号注释......
  • pg事务篇(一)—— 事务与多版本并发控制MVCC
    一、MVCC常用实现方法一般MVCC有2种实现方法:写新数据时,把旧数据快照存入其他位置(如oracle的回滚段、sqlserver的tempdb)。当读数据时,读的是快照的旧数据。写新数据时,旧数据不删除,直接插入新数据。PostgreSQL就是使用的这种实现方法。1.PostgreSQL的MVCC实现方式优缺点优点无论事务......
  • [oeasy]python0133_变量名_标识符_identifier_id_locals
    变量名回忆上次内容上次讲了什么是变量变量变量能变的量就是变量 各种系统、游戏就是由变量所组成的​ 添加图片注释,不超过140字(可选) 声明了变量并且定义了变量 声明就是declaration把标识符和具体值......
  • Python Django 模板的使用
    新建templates/header.html文件<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>header</title></head><body><h1>东营职业学院</h1><p>......
  • #yyds干货盘点#python循环中的 break、continue 语句及 else 子句
    break 语句和C中的类似,用于跳出最近的 for 或 while 循环。循环语句支持 else 子句;for 循环中,可迭代对象中的元素全部循环完毕,或 while 循环的条件为假时,执行该子句;break 语句终止循环时,不执行该子句。请看下面这个查找素数的循环示例:>>>forninrange(2,10):.........
  • Pythonic魔法——运算符
    在Python中,运算符是一种用于对操作数进行操作的特殊符号或函数。Python支持多种运算符,包括算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符等。算术运算符算术运算符是用于进行数学运算的运算符。Python中的算术运算符包括加法、减法、乘法......
  • Pythonic魔法——条件语句
    条件语句是编程中最常见的结构之一。在Python中,条件语句通常由if语句、elif语句和else语句组成。这些语句让我们能够根据输入或某些条件的真假情况来执行不同的代码块。本文将为您详细介绍Python条件语句的语法、用法和示例。if语句if语句是Python中最基本的条件语句......
  • 【路径规划】基于人工势场法实现多机器人系统的群集编队控制附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 百鸡百钱流程图与代码
    问题描述:我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各......