写点什么

Python 基础知识入门(四)

作者:漫步桔田
  • 2023-02-24
    北京
  • 本文字数:6250 字

    阅读完需:约 21 分钟

Python基础知识入门(四)

一、条件控制

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

注意:

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

1.if......if

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

2.if......else

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

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

x = 100if 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 = 100y = 123if x > 99 and  y <= 100:	print('A')                                                            else:	print('B')# 当 and 两边都为 True , 执行 if 语句,否则 else 语句,# 因为 y > 100 ,故条件不成立,执行else语句返回 B 。 x = 100y = 123if x > 99 or  y <= 100:	print('A')else:	print('B') # 当 or 两边任意为 True ,执行 if 语句,否则 else 语句,# 因为 x > 99 ,故条件成立,执行 if 语句返回 A 。 x = 1if 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 = 100print('A') if x > 100 else print('B')  # 如果 if 语句满足条件,执行 if 前语句,否则执行 else 后语句,# 因为 x=100 ,不满足 if 条件,故执行执行 else 后语句,返回 B 。 x = 100print(('B','A')[x == 100])# (x,y), x 为 else 后执行语句,y 为 if 满足条件执行语句,# 因为 x=100 ,满足 if 条件,故执行括号第二参数 ,返回 A 。 x = 100print({True:'A',False:'B'}[x == 100])# 以字典形式传入判断条件满足执行键值,# 因为 x==100 条件成立即为 True ,故返回 A 。
复制代码

6. match......case

x = 200match x:           # 设置判断对象 。    case 100:        print(1)    case 200:      # 当条件满足 x = 200 时执行打印语句返回 2 。        print(2)    case _:        # 注意case 和 _ 中间有一个空格 。        print(3)
复制代码


x = 100match x:    case 100|200:  # 也可以设置多个判断,条件用 | 进行分割,        print(1)   # 当 x = 100 or 200 都会执行打印返回 1 。     case 300:        print(2)    case _:        print(3)
复制代码



二、循环控制

1.while

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

# while循环语句 i = 0while  i  < 3:    i += 1    print('于小漫')                    # 于小漫 # 于小漫 # 于小漫     执行三次while循环中打印语句。 --------------------------------------------------------------------------------# while......else循环语句 i = 0while  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 = 0while 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 = 0while 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 3num(3,2)         # 传入位置参数 x、y 值,返回 3 2
复制代码


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

def num(x,y) :     # 设置参数 x、y    print(x,y)     num(x = 2 ,y = 3)  # 传入关键参数 x、y 值,返回 2 3num(y = 3 ,x = 2)  # 传入关键参数 x、y 值,返回 2 3
复制代码

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

def num(x, y = 5) :   # 设置参数 x 和 默认参数 y    print(x, y)       num(2)                # 传入位置参数  x 值,参数 y 值取设置默认参数值,返回 2 5num(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 + yprint(num(2,3))                              # 5 num = lambda x,y = 3 : x + yprint(num(2))                                # 5   num = lambda x : True if x == 2 else Falseprint(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 = 123def num():	x = 456	print('我是局部变量:{}。'.format(x)) num()print('我是全局变量:{}。'.format(x))#  x 未声明全局变量# 我是局部变量:456。# 我是全局变量:123。 --------------------------------------------------------------------------------x = 123def num():	global x	x = 456	print('我是局部变量:{}。'.format(x)) num()print('我是全局变量:{}。'.format(x))# 当 x 声明全局变量# 我是局部变量:456。# 我是全局变量:456。
复制代码




CSDN 博主「漫步桔田」原文链接:https://blog.csdn.net/u013157570/article/details/127790354

发布于: 2023-02-24阅读数: 10
用户头像

漫步桔田

关注

编程届一名小学生,热心分享编程知识。 2022-08-25 加入

阿里云社区专家博主、CSDN领域新星创作者。

评论

发布
暂无评论
Python基础知识入门(四)_漫步桔田_InfoQ写作社区