过一遍Python基础---Day4

目录

  • 文章声明⭐⭐⭐
  • 让我们开始今天的学习吧!
    • if语句
    • match...case语句
    • for语句
    • while语句
    • break语句、continue语句、pass语句
    • Python推导式
      • 列表推导式
      • 字典推导式
      • 集合推导式
      • 元组推导式(生成器表达式)
    • 函数
    • lambda(匿名函数)


文章声明⭐⭐⭐

  1. 该文章为我(有编程语言基础,非编程小白)的 Python自学笔记
  2. 知识来源为 Python官方文档 / 菜鸟教程 ,归纳为自己的语言与理解记录于此
  3. 不出意外的话,我大抵会 持续更新
  4. 想要了解前端开发(技术栈大致有:Vue2/3、微信小程序、uniapp、HarmonyOS、NodeJS、Typescript)与Python的小伙伴,可以关注我!谢谢大家!

让我们开始今天的学习吧!

if语句

相比烙铁们都耳熟能详,直接上代码:

>>> score = 87
>>> if score < 60:
...     print('不及格')
... elif score < 80:
...     print('及格')
... elif score < 90:
...     print('良好')
... else:
...     print('优秀')
...
良好

以下为if中常用的操作运算符

操作符 描述
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于,比较两个值是否相等
!= 不等于,比较两个值是否不相等

match…case语句

Python 3.10 增加了 match…case 的条件判断,类似于Java与Javascript中的switch语句,解释器中代码如下:

>>> gender = 'male'
>>> match gender:
...     case 'male':
...             print('boy')
...     case 'female':
...             print('girl')
...     case _:
...             print('Are you sure?')
...
boy

for语句

Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串,解释器中代码如下:

>>> list = [1,2,3,4,5]
>>> str = 'Richie'
>>> for num in list: # 遍历数组
...     print(num)
...
1
2
3
4
5
>>> for word in str: # 遍历字符串
...     print(word)
...
R
i
c
h
i
e

也可以配合 range() 函数使用,解释器中代码如下:

>>> for num in range(1,11,2):
...     print(num)
...
1
3
5
7
9

在 Python 中,for…else 语句用于在循环结束后执行一段代码,解释器中代码如下:

>>> for num in range(6):
...     print(num)
... else:
...     print('循环结束咯~')
...
0
1
2
3
4
5
循环结束咯~

如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句,解释器中代码如下:

>>> for num in range(6):
...     if num == 3:
...             break
...     else:
...             print(num)
... else:
...     print('输出不了这句话的!!!')
...
0
1
2

while语句

使用了 while 来计算 1 到 100 的总和,解释器中代码如下:

>>> end_num = 100
>>> sum_num = 0
>>> start_num = 1
>>> while start_num <= 100:
...     sum_num += start_num
...     start_num += 1
... 
... sum_num
5050

无限循环
注意:以下的无限循环你可以使用 CTRL+C 来中断循环

>>> num = 1
while num == 1: # 此处条件永远为Ture
...     print('停不下来啦!!!!')
...
停不下来啦!!!!
停不下来啦!!!!
停不下来啦!!!!
停不下来啦!!!!
停不下来啦!!!!
................

在 Python 中,while…else 语句用于在循环结束后执行一段代码,解释器中代码如下:

>>> num = 0
>>> while num < 5:
...     print(num)
...     num += 1
... else:
...     print('循环结束咯~')
...
0
1
2
3
4
循环结束咯~

如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句,解释器中代码如下:

>>> num = 0
>>> while num < 5:
...     if num == 3:
...             break
...     else:
...             print(num)
...             num += 1
... else:
...     print('到不了这里的~')
...
0
1
2

break语句、continue语句、pass语句

break 语句可以跳出 for 和 while 的循环体,如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行

>>> list = [1,2,3,4,5]
>>> for num in list:
...     if num == 3:
...             break
...     else:
...             print(num)
... else:
...     print('循环到不了这里的~')
...
1
2

continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环

>>> list = [1,2,3,4,5]
>>> for num in list:
...     if num == 3:
...             continue
...     else:
...             print(num)
... else:
...     print('循环能到这里~')
...
1
2
4
5
循环能到这里~

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

>>> list = [1,2,3,4,5]
>>> for num in list:
...     if num == 3:
...             pass
...				print('上面那个pass啥用也没')
...     else:
...             print(num)
... else:
...     print('循环能到这里~')
...
1
2
上面那个pass啥用也没
4
5
循环能到这里~

Python推导式

列表推导式

过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母,解释器中代码如下:

>>> list = ['Mike','nancy','dog','cat','Richie']
>>> new_list = [name.upper() for name in list if len(name) > 3]
>>> new_list
['MIKE', 'NANCY', 'RICHIE']

字典推导式

将列表中各字符串值为键,各字符串的长度为值,组成键值对来创建一个字典,解释器中代码如下:

>>> name = ['Richie','Mike','Nancy','Doggy','Taylor Swift']
>>> name_dict = {name1:len(name1) for name1 in name}
>>> name_dict
{'Richie': 6, 'Mike': 4, 'Nancy': 5, 'Doggy': 5, 'Taylor Swift': 12}

集合推导式

计算数字 1,2,3 的平方数,解释器中代码如下:

>>> set = {num ** 2 for num in range(1,4)}
>>> set
{1, 4, 9}

元组推导式(生成器表达式)

元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象

我们可以使用下面的代码生成一个包含数字 1~9 的元组,解释器中代码如下:

>>> tup1 = (num for num in range(1,10))
>>> tup1
<generator object <genexpr> at 0x00000249FE704940>
>>> tuple(tup1)
(1, 2, 3, 4, 5, 6, 7, 8, 9)

函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段
定义一个函数有以下的规则

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数
  • 函数的第一行语句可以选择性地使用文档字符串来用于存放函数说明
  • 函数内容以冒号 : 起始,并且缩进
  • return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None

举个简单的例子,解释器中代码如下:

>>> def say_hello():
...     print('Hello')
...
>>> say_hello()
Hello

给上述例子加个参数,解释器中代码如下:

>>> def say_hello(name):
...     print('Hello,' + name)
...
>>> say_hello('Richie')
Hello,Richie

再来个计算面积的函数,使用return来返回面积的值以供调用函数者来使用,解释器中代码如下:

>>> def calculate_area(width,height):
...     area = width * height
...     return area # return语句用于退出函数并返回值供调用者使用
...
>>> print(calculate_area(10,20))
200

函数参数分为以下几个类型:

  • 必须参数
  • 关键词参数
  • 默认参数
  • 不定长参数
  • 其他情况的参数

必须参数,顾名思义,调用函数时必须要给的参数,解释器中代码如下:

>>> def sayHello(name):
...     print('Hello,' + name)
...
>>> sayHello() # 不给name参数会报错
TypeError: sayHello() missing 1 required positional argument: 'name'
>>> sayHello('Taylor Swift')
Hello,Taylor Swift

关键词参数,使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值,解释器中代码如下:

>>> def sayHello(name,age):
...     print(name + str(age) + '岁了')
...
>>> sayHello('Richie',22)
Richie22岁了
>>> sayHello(name='Richie',age=22)
Richie22岁了
>>> sayHello(age=22,name='Richie') # 顺序不对也没事,因为python可以用参数名来匹配参数值
Richie22岁了

默认参数,调用函数时,如果没有传递参数,则会使用默认参数

>>> def sayHello(name,age=18):
...     print(name + str(age) + '岁了')
...
>>> sayHello('Richie') # 使用了默认值
Richie18岁了
>>> sayHello('Richie',22)
Richie22岁了

不定长参数,你可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数,不定长参数声明时不会命名,加了星号 * 的参数会以元组的形式导入,存放所有未命名的变量参数,如果在函数调用时没有指定参数,它就是一个空元组,解释器中代码如下:

>>> def printNum(num1,*anotherNum):
...     print(num1)
...     print(anotherNum)
...
>>> printNum(1,2,3,4,5,6,7)
1
(2, 3, 4, 5, 6, 7)

还有一种就是参数带两个星号 ** 的,加了两个星号 ** 的参数会以字典的形式导入,解释器中代码如下:

>>> def printInfo(info1,**anotherInfo):
...     print(info1)
...     print(anotherInfo)
...
>>> printInfo('Richie',age=22,gender='male')
Richie
{'age': 22, 'gender': 'male'}

其他情况的参数
声明函数时,参数中星号 * 可以单独出现,如果单独出现星号 *,则星号 * 后的参数必须用关键字传入,解释器中代码如下:

>>> def func1(a,b,*,c,d):
...     return a + b + c + d
...
>>> func1(1,2,3,4)
TypeError: func1() takes 2 positional arguments but 4 were given
>>> func1(1,2,c = 3,d = 4)
10

强制位置参数
Python3.8 新增了一个函数形参语法 / 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式
在以下的例子中,形参 a 和 b 必须使用指定位置参数,c 或 d 可以是位置形参或关键字形参,而 e 和 f 要求为关键字形参, 解释器中代码如下:

>>> def func1(a,b,/,c,d,*,e,f):
...     print(a,b,c,d,e,f)
...
>>> func1(1,2,3,4,e=5,f=6) # 正确
1 2 3 4 5 6
>>> func1(1,b=2,c=3,d=4,5,6) # 错误
  File "", line 1
    func1(1,b=2,c=3,d=4,5,6)
                           ^
SyntaxError: positional argument follows keyword argument
>>> func1(1,2,3,4,5,6) # 错误
Traceback (most recent call last):
  File "", line 1, in <module>
TypeError: func1() takes 4 positional arguments but 6 were given

lambda(匿名函数)

Python 使用 lambda 来创建匿名函数
lambda 函数是一种小型、匿名的、内联函数,它可以具有任意数量的参数,但只能有一个表达式
匿名函数不需要使用 def 关键字定义完整函数
lambda 函数通常用于编写简单的、单行的函数,通常在需要函数作为参数传递的情况下使用,例如在 map()、filter()、reduce() 等函数中
lambda函数的特点:

  • lambda 函数是匿名的,它们没有函数名称,只能通过赋值给变量或作为参数传递给其他函数来使用
  • lambda 函数通常只包含一行代码,这使得它们适用于编写简单的函数

以下的 lambda 函数没有参数,解释器中代码如下:

>>> func1 = lambda:'Hello,Richie'
>>> func1
<function <lambda> at 0x000001DA30028A40>
>>> print(func1())
Hello,Richie

设置一个参数,解释器中代码如下:

>>> func1 = lambda a : a + 10
>>> func1
<function <lambda> at 0x000001E6635F8A40>
>>> print(func1(10))
20

设置多个参数,解释器中代码如下:

>>> func1 = lambda a,b,c : a + b + c
>>> func1
<function <lambda> at 0x000002875CD98A40>
>>> func1(1,2,3)
6

lambda 函数通常与内置函数如 map()、filter() 和 reduce() 一起使用,以便在集合上执行操作,解释器中代码如下:

>>> numberList = [1,2,3,4,5]
>>> numberList1 = list(map(lambda x : x**2,numberList))
>>> numberList1
[1, 4, 9, 16, 25]

你可能感兴趣的:(关于Python,python,开发语言)