栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python学习笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python学习笔记

目录
  • 1 python的基础语法
    • 1.1 程序结构
      • 1.1.1 缩进分层
      • 1.1.2 换行
      • 1.1.3 注释
    • 1.2 输出和输入
      • 1.2.1 输入input()
      • 1.2.2 输出print()
    • 1.3 标识符和保留字
      • 1.3.1 标识符
      • 1.3.2 保留字(关键字)
    • 1.4 变量
    • 1.5 数据类型
      • 1.5.1 整数(int)
      • 1.5.2 浮点数(float)
      • 1.5.3 布尔值(bool)
      • 1.5.4 复数(complex)
      • 1.5.5 字符串(str)
    • 1.6 数据类型的相互转换
    • 1.7 运算符
      • 1.7.1 算术运算符
      • 1.7.2 比较运算符
      • 1.7.3 赋值运算符
      • 1.7.4 逻辑运算符
      • 1.7.5 位运算符
      • 1.7.6 成员运算符
      • 1.7.7 身份运算符
      • 1.7.8 运算符优先级
  • 2 字符串(Str)
    • 2.1
    • 转义字符
    • 字符串的方法
  • 3 列表(List)
    • 3.1 列表的特性
    • 3.2 列表的常见操作
      • 3.2.1 列表的创建
      • 3.2.2 列表的查询
    • 3.3 列表的函数
    • 3.4 列表的方法
    • 3.5 列表的递推式


1 python的基础语法 1.1 程序结构 1.1.1 缩进分层

严格执行缩进,要么用Tab键缩进,要么使用四个空格缩进,但必须保证使用相同的缩进方式。

1.1.2 换行
  1. 换行符,在Windows操作系统中用转义字符n进行换行。
  2. 在每一行结尾加上继续下一行。如果是以小括号()、中括号[]或大括号{}包含的语句,不必使用就可以直接分成数行。
  3. 将数行表达式写成一行,只需在每一行结尾添加;即可。
1.1.3 注释
  • 单行注释,以#开头,直至换行结束。
#这是单行注释
  • 多行注释,用3个单引号或3个双引号将注释括起来。
'''
这是多行注释
这是多行注释
'''

1.2 输出和输入 1.2.1 输入input()

input()接收来自用户的输入,并以字符串的形式返回,使用=将输入的值存储在变量中。

x=int(input('多少岁?')) #如果输入的是数值,就必须类型转换
1.2.2 输出print()
print(value,...,sep='',end='n')   #只说明了部分参数
  • value是要输出的信息,省略号表示可以有多个要输出的信息。
  • sep设置多个输出信息之间的分隔符,默认的分隔符是空格。
  • end是一个print()函数中所有要输出信息之后添加的符号,默认为换行符n。end=""可以实现不换行输出的效果。
  1. print()函数输出的内容可以是数字、字符串以及含有运算符的表达式。
  2. print()函数输出的目的地可以是显示器和文件。
    #将数据输出文件中
    #注意:1,路径存在,2.使用file=fp
    fp=open('D:/text.txt','a+') #a+如果文件不存在就创建,存在就在文件内容的后面继续追加。
    print('helloworld',file=fp)
    fp.close()
    

1.3 标识符和保留字 1.3.1 标识符

标识符用来识别变量、函数、类、模块及其他对象的名称。

  • 由字母、数字、下划线_ 组成,不能包含空格
  • 不能以数字开头
  • 严格区分大小写
  • 保留字不可以当作标识符
1.3.2 保留字(关键字)
#查看保留字
import keyword
print(keyword.kwlist)

[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]


1.4 变量
变量组成部分作用获取方式
标识表示对象所存储的内存地址使用内置函数id(obj)来获取
类型表示对象的数据类型使用内置函数type(obj)来获取
值表示对象所存储的具体数据使用print(obj)可以将值打印输出

Python允许在一行中为多个变量赋值:

x, y, z = "Orange", "Banana", "Cherry"
print(x) 
print(y) 
print(z) 

也可以在一行中为多个变量分配相同的值:

x = y = z = "Orange"
print(x)
print(y)
print(z)

1.5 数据类型

python默认拥有以下内置数据类型:

内置数据类型
文本类型str
数值类型int、float、complex
序列类型list、tuple、range
映射类型dict
集合类型set、frozenset
布尔类型bool
二进制类型bytes、bytearray、memoryview
1.5.1 整数(int)
  • 整数默认十进制,可以表示正数、负数、0 ,长度不限。
  • 二进制0b开头;八进制0o开头;十六进制0x开头。
1.5.2 浮点数(float)

用指数类型表示浮点数,可以使用字母e或E作为幂的符号,以10位基数。e表示a*10b

注:浮点数存储存在不精确的问题,不确定尾数一般发生在10-16位置上,不是bug。

print(1.1+2.2) # 3.3000000000000003
#解决方案,导入模块decimal
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2')) #3.3
1.5.3 布尔值(bool)

Python一切皆对象,所有对象都有一个布尔值,可以使用内置函数bool()获取对象的布尔值。
布尔值包括True和False,True表示1,Flase表示0。 且布尔值可以进行整数运算。

以下对象的布尔值为Flase(其他对象的布尔值均为True):
False、数值0、None、空字符串、空列表、空元组、空字典、空集合

1.5.4 复数(complex)

使用双精度浮点数来表示实数与虚数的部分,复数的符号可以使用字母j或J。

使用real与imag获取复数的实数和虚数部分

a=2.6+0.8j
print(a.real) #获取实部 2.6
print(a.imag) #获取虚部 0.8

使用complex(real,imag)将real与imag两个数值转换为复数

x=complex(2.6,0.8)
print(x) #(2.6+0.8j)
1.5.5 字符串(str)

又称不可变的字符序列,使用单引号、双引号或三引号来定义,但只有三引号可以跨行定义。


1.6 数据类型的相互转换
函数名作用注意事项
str()将其它数据类型转成字符串也可以用引号转换
int()将其他数据类型转成整数1)文字类str和小数类str无法转整数
2)浮点数转整数时,抹零取整
3)bool可以转整数
float()将其他数据类型转成浮点数1)文字类无法转浮点数
2)整数转浮点数,末尾为.0
3)bool可以转浮点数

1.7 运算符 1.7.1 算术运算符
运算符含义举例
+相加1+2=3
-相减或得负数3-2=1
*相乘或返回一个被重复若干次的字符串2*3=6
/相除得浮点数4/2=2.0
%取模(取余数)
余数=被除数-除数*商
5%2=1
9%-4=-3
**幂运算2**3=8
//整除
一正一负向下取整
7//3=2
-9//4=-3
  • 不同数据类型之间可混合运算,生成“最宽”的类型。整数、浮点数、复数,逐渐“变宽”。
  • 除法应用在整数时,结果为浮点数
  • 两个浮点数相除取余数,结果为浮点数
1.7.2 比较运算符

运算结果为bool类型

运算符含义举例
==等于,比较两个对象的value是否相等1==1 返回 False
!=不等于,比较两个对象的value是否不相等1!=2 返回 True
>大于,x>y返回x是否大于y2>3 返回 False
<小于,x2<3 返回 True
>=大于等于,x>=y返回x是否大于等于y2>=3 返回 False
<=小于等于,x<=y返回x是否小于等于y2<=3 返回 True
  • 不可以对复数进行比较运算
  • 比较运算符可以连在一起处理
1.7.3 赋值运算符

赋值运算符表示将右边变量的值赋给左边变量,运算顺序从右到左

运算符含义举例
=赋值运算符c=a+b表示将a+b的运算结果赋值给c
x op=y增强操作符
op为二元操作符
x op=y等价于x=x op y
+=加法赋值c+=a等价于c=c+a
-=减法赋值c-=a等价于c=c-a
*=乘法赋值c*=a等价于c=c*a
/=除法赋值c/=a等价于c=c/a
%=取余赋值c%=a等价于c=c%a
**=幂赋值c**=a等价于c=c**a
//=取整除赋值c//=a等价于c=c//a

支持系列解包赋值,左右两边变量的个数和值的个数要对应。

a,b,c=20,30,40
print(a,b,c)   #20 30 40

支持两个变量相互赋值。

1.7.4 逻辑运算符
运算符含义举例
and布尔“与”,x and y表示如果x为False,那么返回False,否则返回y的计算值
当两个都是True时,才返回True
3<2 and 5 返回 False
3>2 and 5 返回 5
or布尔“或”,x or y表示如果x为True,那么返回True,否则返回y的计算值
只要有一个是True时,就返回True
3<2 or 5 返回 5
3>2 or 5 返回 True
not布尔“非”,not x表示如果x为True,就返回False;如果x为False,就返回Truenot (False) 返回 True
1.7.5 位运算符

位运算符把数字看作二进制来进行计算

运算符含义举例
&按位与(位AND),如果两个相应位都为1,则该位的结果为1,否则为0
|按位否(位OR),只要两个相应位有一个为1,则该位的结果为1,否则为0
^按位异或(位XOR),当两个对应的二进制相异时,结果为1,否则为0
~按位取反,对数据的每个二进制位取反,即把1变为0,把0变为1
<<左移动,高位丢弃,低位补0
移一位相当于乘以2
12<<2=48
>>右移动,高位补0,低位丢弃
移一位相当于除以2
12>>2=3
1.7.6 成员运算符

成员运算符包括in和not in
x in y表示若x在y序列中则返回True
x not in y表示若x不在y序列中则返回True

1.7.7 身份运算符

身份运算符包括is和not is
is是判断两个标识符是不是引用自一个对象
not is是判断两个标识符是不是引用自不同对象

==比较的是对象的值value;is和not is 比较的是对象的标识id

1.7.8 运算符优先级

1)()、[]、{}
2)object
3)object[i]、object[1:r]、object.attribute、function()
4)+x、-x、~x
5)x**y
6)x*y、x/y、x%y
7)x+y、x-y、
8)x<>y
9)x&y
10)x^y
11)x|y
12)<、<=、>、>=、==、!=、is、not is、in、not in
13)not
14)and
15)or、lambda args:expr

lambda运算符能够以表达式的方式创建一个匿名函数

lambda args:expr

args是以逗号隔开的参数列表,expr是对这些参数进行运算的表达式,且只允许有一个表达式

a=lambda x,y:x+y
print(a(3,4)) #7

2 字符串(Str) 2.1 转义字符
转义字符含义
在行尾时续行符
\反斜杠
'单引号'
"双引号"
a响铃
b退格
e转义
n换行,光标移动到下行首
r回车,光标移动到本行首
v纵向制表符
t横向制表符
f换页
00空
oooooo是八进制ASCII码
xyy十六进制数,yy代表字符
print(hellobworld) #hellworld
#b是退一个格,将o退没了
print(hellorworld) #world
#world将hello进行了覆盖

print(r'hellonworld') #hellonworld
#原字符
  • 不希望字符串中的转义字符起作用,就使用原字符,在字符串之前加上r或R
  • 字符串中的最后一个字符不能是反斜杠

字符串的方法

注:所有字符串方法都返回新值,不会更改原始字符串。

方法描述
capitalize()将第一个字符转换为大写,其他字符转换为小写
casefold()将所有字符转换为小写,不忽略符号和数字
center(length,character)将使用指定的字符(默认为空格)作为填充字符使字符串居中对齐
count() 返回指定值在字符串中出现的次数。
encode() 返回字符串的编码版本。
endswith() 如果字符串以指定值结尾,则返回 true。
expandtabs() 设置字符串的 tab 尺寸。
find() 在字符串中搜索指定的值并返回它被找到的位置。
format() 格式化字符串中的指定值。
format_map() 格式化字符串中的指定值。
index() 在字符串中搜索指定的值并返回它被找到的位置。
isalnum() 如果字符串中的所有字符都是字母数字,则返回 True。
isalpha() 如果字符串中的所有字符都在字母表中,则返回 True。
isdecimal() 如果字符串中的所有字符都是小数,则返回 True。
isdigit() 如果字符串中的所有字符都是数字,则返回 True。
isidentifier() 如果字符串是标识符,则返回 True。
islower() 如果字符串中的所有字符都是小写,则返回 True。
isnumeric() 如果字符串中的所有字符都是数,则返回 True。
isprintable() 如果字符串中的所有字符都是可打印的,则返回 True。
isspace() 如果字符串中的所有字符都是空白字符,则返回 True。
istitle() 如果字符串遵循标题规则,则返回 True。
isupper() 如果字符串中的所有字符都是大写,则返回 True。
join() 把可迭代对象的元素连接到字符串的末尾。
ljust() 返回字符串的左对齐版本。
lower() 把字符串转换为小写。
lstrip() 返回字符串的左修剪版本。
maketrans() 返回在转换中使用的转换表。
partition() 返回元组,其中的字符串被分为三部分。
replace() 返回字符串,其中指定的值被替换为指定的值。
rfind() 在字符串中搜索指定的值,并返回它被找到的最后位置。
rindex() 在字符串中搜索指定的值,并返回它被找到的最后位置。
rjust() 返回字符串的右对齐版本。
rpartition() 返回元组,其中字符串分为三部分。
rsplit() 在指定的分隔符处拆分字符串,并返回列表。
rstrip() 返回字符串的右边修剪版本。
split() 在指定的分隔符处拆分字符串,并返回列表。
splitlines() 在换行符处拆分字符串并返回列表。
startswith() 如果以指定值开头的字符串,则返回 true。
strip() 返回字符串的剪裁版本。
swapcase() 切换大小写,小写成为大写,反之亦然。
title() 把每个单词的首字符转换为大写。
translate() 返回被转换的字符串。
upper() 把字符串转换为大写。
zfill() 在字符串的开头填充指定数量的 0 值。
3 列表(List)
python中的四种集合数据类型
列表(List)是一种有序和可更改的集合。允许重复的成员。
元组(Tuple)是一种有序且不可更改的集合。允许重复的成员。
集合(Set)是一个无序和无索引的集合。没有重复的成员。
词典(Dictionary)是一个无序,可变和有索引的集合。没有重复的成员。
3.1 列表的特性
  • 列表是一种有序和可更改的集合。允许重复的成员。
  • 列表使用中括号[]来表示,元素之间使用英文的逗号进行分隔。
  • 列表对象中的元素可以是不同的类型、也可以是另一个列表
3.2 列表的常见操作 3.2.1 列表的创建
  1. 使用中括号[]
aa=[10,'hello',[20,'world']]
  1. 使用内置函数list()
bb=list([10,'hello',[20,'world']])
3.2.2 列表的查询
  1. 获取列表中的指定元素,使用内置方法index()
  2. 获取列表中的单个元素。正向索引从0开始,反向索引从-1开始。
aa=[10,'hello',[20,'world']]
print(aa[0]) #10
print(aa[-2]) #'hello'
print(aa[-1][1]) #'world' #列表可以嵌套,可以再使用一个中括号来索引嵌套列表中的元素
3.3 列表的函数

列表内置的函数包括len()、max()、min()、list()

  1. len() 返回列表的长度
aa=[10,20,30,40,50]
bb=len(aa)
print(bb) #5
  1. max() 返回列表元素中的最大值
    注:列表中的元素数据类型必须一致才能使用max()函数,min()函数同理。
aa=[10,20,30,40,50]
bb=[a,b,c,d,e]
ma=max(aa)
mb=max(bb)
print(ma) #50
print(mb) #b
  1. min() 返回列表元素中的最小值
aa=[10,20,30,40,50]
bb=[a,b,c,d,e]
print(min(aa)) #10
print(min(bb)) #a
3.4 列表的方法

获取内置的列表方法:

print(dir([]))

[‘__add__’, ‘__class__’, ‘__class_getitem__’, ‘__contains__’, ‘__delattr__’, ‘__delitem__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__getitem__’, ‘__gt__’, ‘__hash__’, ‘__iadd__’, ‘__imul__’, ‘__init__’, ‘__init_subclass__’, ‘__iter__’, ‘__le__’, ‘__len__’, ‘__lt__’, ‘__mul__’, ‘__ne__’, ‘__new__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__reversed__’, ‘__rmul__’, ‘__setattr__’, ‘__setitem__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’, ‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]

.符号用来存取对象的属性与方法

  1. copy() 复制列表
aa=[10,20,30,40,50]
bb=aa.copy()
print(bb) #[10,20,30,40,50]
  1. count(value) 针对列表对象中的相同元素值value计算其数目
aa=[10,10,10,20,30]
bb=aa.count(10)
print(bb) #3
  1. index(value) 将列表对象中元素值为value的索引值返回
    注:重复元素只返回第一个元素的索引、元素不存在抛出ValueError
aa=[10,20,30,30,40]
bb=aa.index(30)
cc=aa.index(50)
dd=aa.index(30,3,5) #可以在指定的star和stop之间进行查找
print(bb) #2
print(cc) #ValueError: 50 is not in list
print(dd) #3
  1. append(object) 在列表对象的末尾添加新对象object
aa=[10,20,30,40,50]
aa.append(60)
print(aa) # [10,20,30,40,50,60]
aa.append([60,70])
print(aa) # [10,20,30,40,50,[60,70]]
  1. extend(list) 在列表的末尾添加参数list列表中的元素
aa=[10,20,30,40,50]
aa.extend([60,70])
print(aa) # [10,20,30,40,50,60,70]
  1. insert(index,object) 在列表对象中索引值为index的元素之前插入新元素object
aa=[10,20,30,40,50]
aa.insert(1,'新元素'])
print(aa) # [10,'新元素',30,40,50]
  1. remove(value) 将列表对象中元素值为value的删除
    注:一次删除一个元素、重复元素只删除第一个元素、元素不存在抛出ValueError
aa=[10,10,20,30,40,50]
aa.remove(10)
print(aa) # [10,20,30,40,50]
  1. pop([index]) 将列表对象中索引值为index的元素删除
    注:不指定index就删除列表最后一个元素、索引不存在抛出IndexError
aa=[10,20,30,40,50]
aa.pop(2)
print(aa) # [10,20,40,50]
aa.pop()
print(aa) # [10,20,40]
  1. clear() 清空列表
aa=[10,20,30,40,50]
aa.clear()
print(aa) #[]
  1. reverse() 将列表对象中的元素颠倒排序
aa=[10,20,30,40,50]
aa.reverse()
print(aa) #[50,40,30,20,10]
  1. sort() 将列表对象中的元素依照大小顺序排列
aa=[30,10,50,20,40]
aa.sort()
print(aa) #[10,20,30,40,50]
3.5 列表的递推式
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987651.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号