Python基础知识入门(四)

news2024/12/25 12:32:24

Python基础知识入门(一)

Python基础知识入门(二)

Python基础知识入门(三)


 一、条件控制

       条件语句是通过一条或多条语句的执行结果(True 或者False)来决定执行的代码块。

       注意:

              if / elif / else 判断要加英文( : )结尾;判断内要注意缩进和区分‘==’和 ‘=’运算符作用。


1.if......if

x = 100
if x > 50:
	print('A')   # A  条件满足执行打印
if x > 80:
	print('B')   # B  条件满足执行打印
if x > 100:
	print('C')   # 空 条件不满足不打印

2.if......else

x = 100
if x < 50:
	print('A')   # 空  条件不满足不执行
else:
	print('B')   # C   条件满足执行打印

3.if......elif......else 

x = 100
if x < 50:
	print('A')   # 空 条件不满足不执行
elif x==100:
	print('B')   # B  条件满足执行打印,条件判断停止
else:
	print('C')   # 空 elif已有满足条件,不会执行else

 注意:

        if.....if 和 if......elif的区别,if.....if不管条件成立与否都会依次进行判断,不会跳出条件判断;

if......elif只要条件成立立即跳出判断,不会再执行后面判断语句。


4.and、or、not

x = 100
y = 123
if x > 99 and  y <= 100:
	print('A')                                                            
else:
	print('B')
# 当 and 两边都为 True , 执行 if 语句,否则 else 语句,
# 因为 y > 100 ,故条件不成立,执行else语句返回 B 。

x = 100
y = 123
if x > 99 or  y <= 100:
	print('A')
else:
	print('B') 
# 当 or 两边任意为 True ,执行 if 语句,否则 else 语句,
# 因为 x > 99 ,故条件成立,执行 if 语句返回 A 。

x = 1
if not x:
	print('A') 
else:
	print('B')
# 当条件 x 不成立,即为True,执行 if 语句,否则 else 语句,
# 因为 x = 1 布尔类型为 True 条件不成立,故执行 else 语句返回 B 。

注意:

       布尔判断中,整数 - 12、浮点数 - 3.2、字符串 - '12'、列表 - ['于小漫'] 、元祖 - ('于小漫',) 、

字典 - {'name':'于小漫'} 、集合 - {'于小漫'},返回 True ; 整数 - 0 、浮点数 - 0.0 、空字符 - '  '、 

空列表 - []、空元组 -  ()、空字典 -  {}、空集合 - set()、None,返回 False。


5.三元表达

       三元表达式又称三元运算符,是软件编程中的一个固定格式;

       表达语法是:表达式 1 if 条件表达式 else 表达式 2;

       当条件为 True 时,返回结果表达式 1,否则返回结果表达式 2。

x = 100
print('A') if x > 100 else print('B')  
# 如果 if 语句满足条件,执行 if 前语句,否则执行 else 后语句,
# 因为 x=100 ,不满足 if 条件,故执行执行 else 后语句,返回 B 。

x = 100
print(('B','A')[x == 100])
# (x,y), x 为 else 后执行语句,y 为 if 满足条件执行语句,
# 因为 x=100 ,满足 if 条件,故执行括号第二参数 ,返回 A 。

x = 100
print({True:'A',False:'B'}[x == 100])
# 以字典形式传入判断条件满足执行键值,
# 因为 x==100 条件成立即为 True ,故返回 A 。

6. match......case

       match......case条件判断是Python3.10新增语句,不需要再使用一连串的if......else来判断,match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。

x = 200
match x:           # 设置判断对象 。
    case 100:
        print(1)
    case 200:      # 当条件满足 x = 200 时执行打印语句返回 2 。
        print(2)
    case _:        # 注意case 和 _ 中间有一个空格 。
        print(3)
x = 100
match x:
    case 100|200:  # 也可以设置多个判断,条件用 | 进行分割,
        print(1)   # 当 x = 100 or 200 都会执行打印返回 1 。 
    case 300:
        print(2)
    case _:
        print(3)

二、循环控制

1.while

       while 语句主要用于在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。

# while循环语句

i = 0
while  i  < 3:
    i += 1
    print('于小漫')   
                

# 于小漫 
# 于小漫 
# 于小漫     执行三次while循环中打印语句。

--------------------------------------------------------------------------------
# while......else循环语句

i = 0
while  i  < 3:
    i += 1
	print('于小漫')
    
else:
	print('打印完成')

# 于小漫
# 于小漫
# 于小漫
# 打印完成  执行三次while循环中打印语句后执行else下打印语句。

注意:

       一定要设置变量循环停止条件,否则将进入死循环。 


2.for

       for语句主要用于循环遍历序列项目,如列表、元组、字符串等。

# for循环语句

for i in [1,2,3]:
	print(i)

# 1
# 2
# 3  依次循环打印列表内每一个元素。

--------------------------------------------------------------------------------
# for......else循环语句

for i in [1,2,3]:
	print(i)
else:
	print('打印完成')

# 1
# 2
# 3
# 打印完成   依次循环打印列表内每一个元素后执行else下打印语句。

3.range

range(start, stop[, step])

       start: 计数开始,默认值为 0 。例如range(3)等价于range(0, 3);

       stop: 计数结束,但不包括 stop。例如:range(0, 3);只包含0、1、2不包含3。

       step:计数步长,默认值为1。例如:range(0,3) 等价于 range(0, 3, 1)。

for i in range(3):
    print(i)            # 0 1 2  开始位置为0,结束位置为3,计数步数为1。


for i in range(1,3):
    print(i)            # 1 2    开始位置为1,结束位置为3,计数步数为1。


for i in range(1,6,2):
    print(i)            # 1 3 5  开始位置为1,结束位置为6,计数步数为2。

4.continue

       continue语句用来跳过当前循环的剩余语句,然后继续进行下一轮循环。

# while......continue语句

x = 0
while x < 5:
	x += 1
	if x == 4:
		continue
	else:
		print(x)   
# 依次打印 1 2 3 5,因为当 x = 4 时执行if判断中语句continue,
# 跳过当前循环,执行下一个循环,所以不会执行else中语句故不会打印x值。

--------------------------------------------------------------------------------
# for......continue语句

for x in range(1,6):
	if x == 4:
		continue
	else:
		print(x)
# 依次打印 1 2 3 5,因为当 x = 4 时执行if判断中语句continue,
# 跳过当前循环,执行下一个循环,所以不会执行else中语句故不会打印x值。

5.break

       break 语句用来终止循环语句,即循环条件没有 False 条件或者序列还没被完全循环完成,也会停止执行循环语句。

# while......break

x = 0
while x < 5:
	x += 1
	if x == 4:
		break
	else:
		print(x)  
# 依次打印 1 2 3 ,因为当 x = 4 时执行 if 判断中语句 break ,跳过出循环,
# 不再执行下一个循环,所以不会执行剩余语句和 else 中语句,故不会打印 x 值。

--------------------------------------------------------------------------------
# for......break

for x in range(1,6):
	if x == 4:
		break
	else:
		print(x)
# 依次打印 1 2 3 ,因为当 x = 4 时执行 if 判断中语句 break ,跳过出循环,
# 不再执行下一个循环,所以不会执行剩余语句和 else 中语句,故不会打印 x 值。 

6.pass 

       pass 是空语句,是为了保持程序结构的完整性,不做任何事情,一般用做占位语句。

for x in range(1,6):
	if x == 4:
		             # 未填写满足条件判断执行语句。
	else:
		print(x)     # IndentationError 缩进错误。

--------------------------------------------------------------------------------
for x in range(1,6):
	if x == 4:
		pass         # 填写占位语句 pass。
	else:
		print(x)     # 1 2 3 5  运行正常。

7.生成式

x = [i for i in range(1,6)]             # 列表生成式
print(x)                                # [1, 2, 3, 4, 5]
x = [i for i in range(1,6) if i > 2]   
print(x)                                # [3, 4, 5]
x = [x * y for x in range(1,3) for y in range(3,6)]             
print(x)                                # [3, 4, 5, 6, 8, 10]

--------------------------------------------------------------------------------
x = {i for i in range(1,6)}             # 集合生成式
print(x)                                # {1, 2, 3, 4, 5}
x = {i for i in range(1,6) if i > 2}
print(x)                                # {3, 4, 5}
x = {x * y for x in range(1,3) for y in range(3,6)}             
print(x)                                # {3, 4, 5, 6, 8, 10}

--------------------------------------------------------------------------------
x = {str(i): i**2 for i in range(2,6)}  # 字典生成式
print(x)                                # {'2': 4, '3': 9, '4': 16, '5': 25}
x = {str(i): i**2 for i in range(1,6) if i > 2}  
print(x)                                # {'3': 9, '4': 16, '5': 25}

三、函数应用

       函数定义∶函数是一种仅在调用时运行的代码块,可以将数据(称为参数)传递到函数中,把数据作为结果返回;

       函数组成∶函数定义关键字(def)、函数名、参数和函数体;

       函数作用∶ 减少重复代码,提高编程效率函数的多参数。              


1.函数创建

def hello() :                # 自定义函数hello()
    print('Hello World!')    # 函数未调用所以不会执行打印

2.函数调用

def hello() :                # 自定义函数hello()
    print('Hello World!')    # 打印执行函数内语句 Hello World!

hello()                      # 调用函数hello()

3.函数参数

       1)位置参数∶ 参数必须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

def num(x,y) :   # 设置参数 x、y
    print(x,y)  
 
num(2,3)         # 传入位置参数 x、y 值,返回 2 3
num(3,2)         # 传入位置参数 x、y 值,返回 3 2

       2) 关键字参数∶参数和函数调用关系紧密,函数调用通过 [参数名 = 值] 的方式传入参数。

def num(x,y) :     # 设置参数 x、y
    print(x,y)    

num(x = 2 ,y = 3)  # 传入关键参数 x、y 值,返回 2 3
num(y = 3 ,x = 2)  # 传入关键参数 x、y 值,返回 2 3

       3)默认参数:定义函数时,给参数赋值一个默认值,调用函数时,如果没有传入位置参数的值,则在函数内部使用参数默认值。

def num(x, y = 5) :   # 设置参数 x 和 默认参数 y
    print(x, y)      
 
num(2)                # 传入位置参数  x 值,参数 y 值取设置默认参数值,返回 2 5
num(2,3)              # 传入位置参数  x 值,参数 y 值取传入位置参数值,返回 2 3

       4)不定长参数:当函数需要处理的参数个数不确定时,可使用不定长参数。
             *args — 用于存放元组参数,**kwargs — 用于存放字典参数

def num(x, *args):               # 设置位置参数 x 和 不定长参数 args
    print(x)                     # 1
    print(args)                  # (2, 3, 4)
    

num(1, 2, 3, 4)     

--------------------------------------------------------------------------------
def num(x, **kwargs):            # 设置位置参数 x 和 不定长参数 kwargs
    print(x)                     # 1
    print(kwargs)                # {'a': 2, 'b': 3, 'c': 4}
    

num(1, a = 2, b = 3, c = 4)

--------------------------------------------------------------------------------
def num(x, *args, **kwargs):     # 设置位置参数 x 和 不定长参数 args、kwargs
    print(x)                     # 1
    print(args)                  # (2, 3)
    print(kwargs)                # {'a': 4, 'b': 5}
    

num(1, 2, 3, a = 4, b = 5)     

注意:

       位置参数(name)一定要放在关键参数(age = 5)前面使用;

       传参时位置参数必需按顺序输入,关键参数可无序输入。     

def f(a, b, *, c):      # 如果单独出现星号 *,则星号 * 后的参数必须用关键字传入 。
    return a + b + c


print(f(1, 2, c =3 ))   # 也就是说 * 号后面参数 c 传入时必须是以关键参数进行传入。

        5)强制位置参数:Python3.8 新增了一个函数形参语法 / 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式。

def x(a, b, /):
    print(a, b)


x(1, 2)           # / 前的形参传入时必须是位置参数,否则会报错SyntaxError语法错误。

--------------------------------------------------------------------------------
def x(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)


x(1, 2, c=3, d=4, e=5, f=6) 
# / 前a、b必须是位置参数,c、d可以是位置或关键参数,* 后e、f必须是关键参数,否则会报错。

4.return

        return语句用于退出函数,把函数内执行结果返回给调用语句执行结果。

def num(x, y):     # 设置参数 x,y  
	return         # 不带参数值的 return 语句返回 None
                   
print(num(2, 3))   # None 
# 因为没有结果返回给调用函数故打印None。

--------------------------------------------------------------------------------
def num(x, y):     # 设置参数 x,y     
    return  x + y  # 将函数内结果返回给调用函数
             
print(num(2, 3))   # 5 
# 传入参数后,将 return 返回值执行打印。
--------------------------------------------------------------------------------
def num(x, y):     # 设置参数 x,y 
	return x,y     # 将函数内结果返回给调用函数

print(num(2, 3))   # (2, 3),多个返回值会以元组形式返回
# 如果函数有多个返回值,每个返回值使用英文逗号隔开。

5.lambda

       匿名函数是不需要通过 def 来声明函数名字,只需通过lambda关键字来定义的函数。

num = lambda x,y : x + y
print(num(2,3))                              # 5

num = lambda x,y = 3 : x + y
print(num(2))                                # 5  

num = lambda x : True if x == 2 else False
print(num(3))                                # False

6.map

       map()函数会根据提供的函数对指定序列做映射。

       第一个参数 function 以参数序列中的每一个元素调用 function 函数,

       返回包含每次 function 函数返回值的新列表。

x = list(map(lambda a: a * 2, [1, 2, 3, 4, 5]))
print(x)   # [2, 4, 6, 8, 10] 将序列中每一个元素都执行函数操作 。

7.filter

       filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

       接收两个参数,第一个为函数,第二个为序列,序列每个元素作为参数传递给函数进行判断,

然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

x = list(filter(lambda a: a > 2, [1, 2, 3, 4, 5]))
print(x)   # [3, 4, 5] 过滤掉不符合条件的元素 。

8.global

       global是将函数内局部变量声明为全局变量(函数外是全局变量, 函数内是局部变量)。

x = 123
def num():
	x = 456
	print('我是局部变量:{}。'.format(x))

num()
print('我是全局变量:{}。'.format(x))
#  x 未声明全局变量
# 我是局部变量:456。
# 我是全局变量:123。

--------------------------------------------------------------------------------
x = 123
def num():
	global x
	x = 456
	print('我是局部变量:{}。'.format(x))

num()
print('我是全局变量:{}。'.format(x))
# 当 x 声明全局变量
# 我是局部变量:456。
# 我是全局变量:456。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用CMake编译基于OpenCV开发的程序的方法

方法 使用CMake编译OpenCV开发的程序分为以下几个步骤&#xff1a; 安装编译器和代码编辑器。 Windows安装Visual Studio社区版&#xff0c;集成了编译器和代码编辑器。Ubuntu安装gcc、g和VSCode&#xff1a; sudo apt install gcc gcmacOS安装XCode Commandline Tools和VS…

R语言应用xgboost进行机器学习(1)

XGBoost 机器学习模型是一种高效且可扩的展的机器学习分类器&#xff0c;由 Chen 和 Guestrin 在 2016 年推广。XGBoost原理是是在决策树的基础上产生迭代&#xff0c;它以 boosting 的方式结合了多个决策树。通常创建每棵新树是为了通过梯度提升来减少先前模型的误差&#xff…

鸿翼档案,将非结构化数据治理能力应用于档案管理的先行者

数字化时代&#xff0c;每个人每天都要接触大量的数据。人们通过分析数据获取信息与知识&#xff0c;帮助自身更好地理解社会动向&#xff0c;掌握行业发展。我们每天都会接触到多种多样的数据&#xff0c;这些数据根据结构可划分为三种&#xff1a;结构化数据、非结构化数据和…

Android设计模式详解之责任链模式

前言 责任链模式是行为型设计模式&#xff1b; 定义&#xff1a;使多个对象都有机会处理请求&#xff0c;从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有对象处理它为止。 使用场景&#xff1a;…

基于概率论的MATLAB仿真,内容包括非共轭条件下的后验概率的推导,共轭条件下的非完备集的后验概率的推导

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 1.1先验概率的推导 根据贝叶斯概率论可知&#xff0c;某一事件的后验概率可以根据先验概率来获得&#xff0c;因此&#xff0c;这里首先对事件的先验概率分布进行理论的推导。假设测量的腐蚀数据…

[一个无框架的javaweb demo]番荒之冢 --番剧灯塔站

文章目录番荒之冢 --番剧灯塔站理念大致设计权限分配番剧信息用户/管理员信息邮箱正则匹配URL正则匹配留言信息数据库设计useranimationcommentfavoranim技术栈(无框架)功能一个简单的登录(进行了路由限制, 若未登录都会跳转至此)首页我的我的资料追番清单留言区番剧详情退出登…

华为云-计算云服务介绍

前言 相信很多小伙伴在刚开始接触各类云产品的时候&#xff0c;被各种各样的云产品类如规格、型号、价格、适用场景等问题所困扰。本文就给大家介绍一下华为云常见云产品的规格区别和适用场景。帮助大家选择合适的云产品。 文章目录前言一、计算云服务1.弹性云服务器2.裸金属服…

Apache Flink 部署模式

目录 会话模式 Session Mode 单作业模式 Per-Job Mode (deprecated) 应用模式 Application Mode 在一些应用场景中&#xff0c;对于集群资源分配和占用的方式&#xff0c;可能会有特定的需求。Flink 为各种场景提供了不同的部署模式&#xff0c;主要有以下三种&#xff1a; i…

ArcGIS | NetCDF数据在ArcMap中的使用

NetCDF又称科学数据集&#xff0c;可以存储温度、湿度、风速、风向等多个维度的文件格式。以中国区域地面气象要素驱动数据集为例进行介绍。 中国区域地面气象要素驱动数据集&#xff0c;包括近地面气温、近地面气压、近地面空气比湿、近地面全风速、地面向下短波辐射、地面向…

P6 PyTorch 常用数学运算

前言&#xff1a; 这里主要介绍一下PyTorch 的常用数学运算 目录&#xff1a; 1&#xff1a; add|sub 加减法 2: mul/div 乘/除运算 3: 矩阵乘法 4 2D矩阵转置 5 其它常用数学运算 6 clamp 梯度剪裁 一 加减法 1.1 加法 可以直接通过符号 或者 torch.add # -*- co…

MySQL数据库的安装、创建库及连接取数

安装MySQL数据库MySQL数据库简介安装MySQL数据库下载安装包安装MySQLMySQL创建一个新的数据库&#xff0c;并在其中创建新的数据表&#xff0c;填充测试数据并查看mysql>模式下输入的每句sql语句都要以;结尾&#xff1b;若多行语句无;&#xff0c;则被默认为一条语句未输入完…

UNIX环境高级编程——1.UNIX基础知识

UNIX基础知识 UNIX体系结构 严格意义上来说&#xff0c;可以将操作系统定义为一种软件&#xff0c;控制计算机硬件资源&#xff0c;提供程序运行环境。通常把这种软件成为内核。内核的接口被成为系统调用&#xff08;system call&#xff09;。公共函数库构建在系统调用接口之…

碳酸锂、碳酸氢锂除钙镁离子交换柱

锂及其盐类是国民经济和国防建设中具有重要意义的战略物资&#xff0c;也是与人们生活息息相关的能源材料。而碳酸锂作为锂盐的基础盐&#xff0c;是制取锂化合物和金属锂的原料&#xff0c;可作铝冶炼的电解浴添加剂&#xff0c;亦可用于合成橡胶、染料、半导体等方面。电池级…

Orin+ GMSL (Ser 9295+Des 9296)流程分析(1)

文章目录 1 前言2 流程分析2.1 整体架构2.2 Ser端2.2 Des端2.3 软件架构2.4 设备树文件分析2.5 VI 接口2.7 CSI 接口1 前言 Maxim 支持GMSL作为汽车行业视频应用的通信链路。GMSL基于SerDes (Serializer-Deserializer)技术;也就是说,它在发送端使用序列化器,在接收端使用反序…

观察UE4中引用查看器(ReferenceViewer)是从哪得到数据的

前言 引用查看器(ReferenceViewer)可以显示资源引用关系数据&#xff0c;我想要知道这个数据是如何得到的。因此从它的界面代码开始一步步往里看。 &#xff08;到最后才发现&#xff0c;得到引用关系数据的接口很简单&#xff0c;而且是蓝图可访问的&#xff0c;详见本篇的【…

冬至已至,你的在职读研2023能在社科院与杜兰大学金融管理硕士项目实现吗

杜甫《小至》中写道“天时人事日相催&#xff0c;冬至阳生春又来”。不知不觉间冬至悄然到来&#xff0c;过完冬至天气日渐回暖&#xff0c;春天即将回来了。时光总是匆匆而逝&#xff0c;一晃2022年将要与我们说再见了。这一年来&#xff0c;反复无常的疫情&#xff0c;瞬息万…

【学习笔记】JDK源码学习之HashTable(附带面试题)

【学习笔记】JDK源码学习之HashTable(附带面试题) 其他好文&#xff1a; 【学习笔记】JDK源码学习之LinkedHashMap&#xff08;附带面试题【学习笔记】JDK源码学习之HashMap&#xff08;附带面试题&#xff09;【学习笔记】JDK源码学习之Vector&#xff08;附带面试题&#x…

OpenCV基础入门

主要了解包括 opencv 的下载和环境配置opencv目录的了解opencv中highgui模块opencv中core模块opencv中imgproc模块opencv中feature2d模块opencv视频操作 1.OpenCV简介 图像是人类视觉的基础&#xff0c;是自然景物的客观反映。 模拟图像通过某种物理量的强弱变化来记录图像…

中小企业远程办公指南:10分钟搭建,即插即用

不装了 我成小阳人了 虽然还没算过来人&#xff0c;但是想要提醒一下小伙伴“能不阳就别阳”&#xff0c;“能晚阳就晚阳”&#xff01; 真的很痛很难受。 为了应对即将到来的高峰&#xff0c;我们在上周末紧急采取了远程居家办公模式。 不得不说&#xff0c;公司应对突发情…

彻底卸载2345王牌输入法的方法

2345王牌输入法是2345公司旗下一款中文输入法软件&#xff0c;主打纯净输入&#xff0c;有用户用了一段时间觉得不太习惯&#xff0c;就想卸载装别的软件&#xff0c;但是发现怎么也卸不掉&#xff0c;下面小编就给大家介绍彻底卸载2345王牌输入法的方法。 方法一&#xff1a;使…