2023/1/10python学习笔记

1变量

变量就是一个名字,标签。通过变量就可以找到对应的数据。

2创建一个变量

python的变量无需声明,只需一次赋值就可以成功创建:

x = 3

这样就创建了一个变量,名字叫x ,数值为3

这个 = ,表示一个赋值操作,也就是将右边的数值3跟变量x挂钩

3访问一个变量

当一个变量被创建后,使用变量名就可以访问变量了:

print(x)
3

4变量名

变量名,通常是由字母,数字和下划线(_)构成,但千万不能以数字打头,比如loveyou_1314是合法的,但是1314_loveyou是非法的。

另外变量名区分大小写,Fishc与fishc是两个变量

5字符串(' ')

python有许多字符串的编写方式,主要有‘ ‘," ".“ ””““ ”,

print('I love china')
I love china 

6字符串(" " )

print("I love china")
I love china

7转义字符

8原始字符串

使用原始字符串可以避免(\)被当做转义字符解析(就是在前面加上一个r):

>>> 未使用原始字符串
>>> print("D:\three\two\one\now")
D:        hree        wo\one
ow
>>> # 使用原始字符串
>>> print(r"D:\three\two\one\now")
D:\three\two\one\now

9字符串(""" """)

使用三引号字符串可以引用多行文本:

>>> poetry = """
面朝大海,春暖花开

从明天起,做一个幸福的人
喂马、劈柴,周游世界
从明天起,关心粮食和蔬菜
我有一所房子,面朝大海,春暖花开

从明天起,和每一个亲人通信
告诉他们我的幸福
那幸福的闪电告诉我的
我将告诉每一个人

给每一条河每一座山取一个温暖的名字
陌生人,我也为你祝福
愿你有一个灿烂的前程
愿你有情人终成眷属
愿你在尘世获得幸福
我只愿面朝大海,春暖花开
"""

10字符串的加法和乘法

字符串的相加就是拼接,形成一个新的字符串

>>> '520' + '1314'
'5201314'

还可用*号进行复制

比如要打印(每天爱你三千遍)

print("每天爱你三千遍 \n" * 3000)

11数字类型

python的数字类型一共有三种整型,浮点型和负数

12整数

python的整数长度是不受限制的,可以进行无限的精度运算

>>> 1112234579121621 / 11235813213455
98.99012719343793

13浮点数

浮点数就是小数,由于浮点数在计算机存储是存在误差的,有时候可能会有bug

>>> 0.1 + 0.2
0.30000000000000004

14精确计算浮点数

这里我们需要用一个decimal模块

>>> import decimal
>>> a = decimal.Decimal('0.1')
>>> b = decimal.Decimal('0.2')
>>> print(a + b)
0.3

15E记法

E记法就是科学计数法

>>> x = 0.00005
>>> x
5e-05

16复数

负数包含一个实部一个虚部

>>> 1 + 2j
(1+2j)

复数都是以浮点数的形式存放的,最后将复数值赋值给一个变量x则可以通过x.real访问实部和x.imag访问虚部

>>> x = 1 + 2j
>>> x.real
1.0
>>> x.imag
2.0

17数字运算

18四则运算

>>> 1 + 2
3
>>> 1 - 2
-1
>>> 1 * 2
2
>>> 1 / 2
0.5

19地板除

取比目标小的最大整数

>>> 3 // 2
1
>>> -3 // 2
-2

20取余

用来求两数相除的余数,如果能整除则余数为0

>>> 3 % 2
1
>>> 6 % 2
0

21divmod()函数

python里有一个内置函数叫divmod(),作用就是qiuchu两个参数的地板除和余数的结果

>>> divmod(3, 2)
(1, 1)
>>> divmod(-3, 2)
(-2, 1)

22abs()函数

abs()函数作用是返回指定数值的绝对值.

>>> x = -520
>>> abs(x)
520
>>> y = -3.14
>>> abs(y)
3.14

如果传入的是一个复数,abs()函数返回的结果就是复数的摸:

>>> z = 1 + 2j
>>> abs(z)
2.23606797749979

23int(),float(),complex()函数

int函数是将指定值转换成整数,比如我们传入一个字符串('520')

>>> int('520')
520

如果是一个小数,则将小数部分直接去除

>>> int(3.14)
3
>>> int(9.99)
9

float()和complex()函数功能同样的原理

24pow()函数和**幂运算符

>>> pow(2, 3)
8
>>> 2 ** 3
8
>>> pow(2, -3)
0.125
>>> 2 ** -3
0.125

pow()支持三个参数.第三个参数将结果进行取余运算

>>> pow(2, 3, 5)
3

23布尔类型

布尔类型的值只有两个 Ture 或False

bool()函数可以直接给出Ture或False结果

>>> bool(250)
True
>>> bool("假")
True
>>> bool("False")
True

24逻辑运算符

25运算符优先级

26分支结构

python的分支结构由if语句实现

(1判断一个条件成立,就执行某条语句

if 条件:
    某条语句或某个代码块

(2)先判断if条件如果不成立则执行else语句

if 条件:
    某条语句或某个代码块
else:
    某条语句或某个代码块

(3)多个条件判断

if 第1个条件:
    某条语句或某个代码块
elif 第2个条件:
    某条语句或某个代码块
elif 第3个条件:
    某条语句或某个代码块

(4)多个条件判断加一个else

if 第1个条件:
    某条语句或某个代码块
elif 第2个条件:
    某条语句或某个代码块
elif 第3个条件:
    某条语句或某个代码块
else:
    某条语句或某个代码块

(5)分支结构嵌套

>>> age = 18
>>> isMale = True
>>> if age < 18:
...     print("抱歉,未满18岁禁止访问。")
... else:
...     if isMale:
...         print("任君选购!")
...     else:
...         print("抱歉,本店商品可能不适合小公举哦~")
        
任君选购!

27循环结构

python有两种循环语句:while和for

(1)while循环

while 条件:
    某条语句或某个代码块

死循环

>>> while True:
...     print("作为一段没有灵魂的代码,我的任务就是不断地干活!")

break语句

在循环体内,一旦遇到 break 语句,Python 二话不说马上就会跳出循环体,即便这时候循环体内还有待执行的语句。

continue语句

实现跳出循环体还有另外一个语句,那就是 continue 语句。continue 语句也会跳出循环体,但是,它只是跳出本一轮循环,它还会回到循环体的条件判断位置,然后继续下一轮循环(如果条件还满足的话)。

注意它和 break 语句两者的区别:

continue 语句是跳出本次循环,回到循环的开头

break 语句则是直接跳出循环体,继续执行后面的语句

for循环

for 变量 in 可迭代对象:
    某条语句或某个代码块

什么是可迭代对象?

所谓可迭代对象,就是指那些元素能够被单独提取出来的对象。比如我们学过的字符串,它就是一个可迭代对象。

什么叫迭代呢?

比如说让你每一次从字符串 "FishC" 里面拿一个字符出来,那么你依次会拿出 'F'、'i'、's'、'h'、'C' 五个字符,这个过程我们称之为迭代。

range()

range() 会帮你生成一个数字序列,它的用法有以下三种:

range(stop) - 将生成一个从 0 开始,到 stop(不包含)的整数数列

range(start, stop) - 将生成一个从 start 开始,到 stop(不包含)的整数数列

range(start, stop, step) - 将生成一个从 start 开始,到 stop(不包含)结束,步进跨度为 step 的整数数列

注意:无论你使用哪一种,它的参数都只能是整数。

28列表

1创建列表

创建一个列表非常简单,我们只需要使用中括号,将所有准备放入列表中的元素给包裹起来,不同元素之间使用逗号分隔:

>>> rhyme = [1, 2, 3, 4, 5, "上山打老虎"]
>>> print(rhyme)
[1, 2, 3, 4, 5, '上山打老虎']

2访问列表中的元素

如果希望按顺序访问列表的每一个元素,可以使用 for 循环语句:

>>> for each in rhyme:
...     print(each)
...
1
2
3
4
5
上山打老虎

如果希望随机访问其中一个元素,那么可以使用下标索引的方法:

>>> rhyme[0]
1
>>> rhyme[2]
3
>>> rhyme[5]
'上山打老虎'

3. 下标索引

4. 列表切片

>>> rhyme[0:3]
[1, 2, 3]
>>> rhyme[3:6]
[4, 5, '上山打老虎']
>>> rhyme[:3]
[1, 2, 3]
>>> rhyme[3:]
[4, 5, '上山打老虎']
>>> rhyme[:]
[1, 2, 3, 4, 5, '上山打老虎']
>>> rhyme[0:6:2]
[1, 3, 5]
>>> rhyme[::2]
[1, 3, 5]
>>> rhyme[::-2]
['上山打老虎', 4, 2]
>>> rhyme[::-1]
['上山打老虎', 5, 4, 3, 2, 1]

5向列表中添加数据

向列表中添加元素append(),功能是列表的末尾添加指定的元素,但是只能添加一个元素

>>> heros.append("黑寡妇")
>>> heros
['钢铁侠', '绿巨人', '黑寡妇']

extend()方法允许一次性添加多个元素

>>> heros.extend(["鹰眼", "灭霸", "雷神"])
>>> heros
['钢铁侠', '绿巨人', '灭霸', '黑寡妇', '鹰眼', '灭霸', '雷神']

insert()方法允许在列表任何位置添加数据

insert()方法有两个参数.第一个参数指定是插入的位置,第二个参数指定的是插入的元素

>>> s = [1, 3, 4, 5]
>>> s.insert(1, 2)
>>> s
[1, 2, 3, 4, 5]

6删除列表中的元素

利用remove方法,可以将列表中指定的元素删除

>>> heros.remove("灭霸")
>>> heros
['钢铁侠', '绿巨人', '黑寡妇', '鹰眼', '灭霸', '雷神']

这里有两点要注意的:

如果列表中存在多个匹配的元素,那么它只会删除第一个

remove() 方法要求你指定一个待删除的元素,如果指定的元素压根儿不存在,那么程序就会报错

pop()方法这个参数其实是可选的,如果没有选择参数,则默认弹出最后一个参数

>>> heros.pop()
'雷神'
>>> heros
['钢铁侠', '绿巨人', '鹰眼', '灭霸']

clear()方法可以一步清空列表

>>> heros.clear()
>>> heros
[]

7修改元素

用下标索引的方法,使用赋值运算符将新的替换进去

>>> heros = ['蜘蛛侠', '绿巨人', '黑寡妇', '鹰眼', '灭霸', '雷神']
>>> heros[4] = "钢铁侠"
>>> heros
['蜘蛛侠', '绿巨人', '黑寡妇', '鹰眼', '钢铁侠', '雷神']

修改多个可以用切片实现

>>> heros[3:] = ["武松", "林冲", "李逵"]
>>> heros
['蜘蛛侠', '绿巨人', '黑寡妇', '武松', '林冲', '李逵']

8排序与翻转

sort()实现从小到大排列,reverse()实现从大到小排列

>>> nums = [3, 1, 9, 6, 8, 3, 5, 3]
>>> nums.sort()
>>> nums
[1, 3, 3, 3, 5, 6, 8, 9]
>>> nums.reverse()
>>> nums
[9, 8, 6, 5, 3, 3, 3, 1]

9定位列表中的元素

count()可以知道列表里有多少个选定元素

>>> nums.count(3)
3

index()可以知道元素对应的索引值

>>> nums.count(3)
3

index()有两个可选的参数--start and end 查找初始位置和结束位置

>>> nums.index(3, 1, 7)
5

列表中还有一个方法copy()用于拷贝一个列表:

>>> nums_copy1 = nums.copy()
>>> nums_copy1
[3, 1, 9, 6, 8, 3, 5, 3]

也可以用切片的语法进行拷贝

>>> nums_copy2 = nums[:]
>>> nums_copy2
[3, 1, 9, 6, 8, 3, 5, 3]

以上都是浅拷贝

深拷贝

import copy
>>> x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> y = copy.deepcopy(x)
>>> x[1][1] = 0
>>> x
[[1, 2, 3], [4, 0, 6], [7, 8, 9]]
>>> y
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

1列表推导式

将以上代码写为列表推导式

>>> oho = [1, 2, 3, 4, 5]
>>> for i in range(len(oho)):
...     oho[i] = oho[i] * 2
>>> oho = [1, 2, 3, 4, 5]
>>> oho = [i * 2 for i in oho]

2基础语法

列表推导式的基础语法如下:

[expression for target in iterable]

3处理矩阵

利用列表推导式处理矩阵,将矩阵的第二列元素提取出来

>>> matrix = [[1, 2, 3],
...           [4, 5, 6],
...           [7, 8, 9]]
>>> col2 = [row[1] for row in matrix]
>>> col2
[2, 5, 8]

获取矩阵对角线上的元素获取

>>> diag = [matrix[i][i] for i in range(len(matrix))]
>>> diag
[1, 5, 9]

4带条件筛选功能的列表推导式

列表推导式其实还可以添加一个用于筛选的 if 分句,完整语法如下:

[expression for target in iterable if condition1]

5多层嵌套的列表推导式

[expression for target1 in iterable1
            for target2 in iterable2
            ...
            for targetN in iterableN]

每层嵌套还可以附带一个用于条件筛选的 if 分句:

[expression for target1 in iterable1 if condition1
            for target2 in iterable2 if condition2
            ...
            for targetN in iterableN if conditionN]

猜你喜欢

转载自blog.csdn.net/qq_61134394/article/details/128628256
今日推荐