Python基础知识笔记
数据类型
字符串:双引号或者单引号引起来的文本
字符串内字符都有序号,正向是从 0 开始,反向是-1 开始。str[-1]指的就是最后一个字符。
字符串的拼接:
-
- 号,对于字符串或者非字符串使用该符号就能拼接成一个字符串。
-
.format(),中间的参数,对应字符串中的{},相当于 c 语言里的占位符。
整数:python 中整数的除法能得到小数,这一点与 c 不同
布尔值:两个数据比较中产生布尔值。True False
0、[]、{}、‘’没有内容的这些符号都代表了false。
列表
s = [a1,a2,a3,a4]各个元素有自己的位置,从 s[0]开始,位置又叫索引
列表不规定里面数据类型且不限定长度。
s[-1]表示倒数第一个元素,s[0:4]是 s[0]-s[3]的元素,s[1:]是 s[1]-s[3],s[:2]是 s[0],s[1]
s.append(s[n])可把 s[n]添加到 s 列表的尾部。
字典
d = {键 1:值 1,键 2:值 2} 通过字典的键取出对应的值。d[键 1]==值 1
函数
input():里面的内容相当于 print 可以输出出来,然后键入的数据能作为字符串类型赋给变量,
如果 n=int(input(...))则要求输入的内容是 int 类型的,如果不是则会报错。
type 函数,括号内加入变量,得到的结果<class 'int'>这样的。
自定义函数:
def fun(x):
......
fun(x)
注意函数局部变量不能放到外面去使用。
python 的缩进不能用掺杂空格,否则会报错 unexpected indent
传入任意数量的实参:
def deliver(*ele):
for i in ele:
print(i)
形参名*ele 中的星号让 python 创建一个元组,函数在实际使用时不管多少个实参都会传入这个元组中。若函数有多个形参,这类带星号的元组形参要放在最后,优先匹配其他形参。
同理,形参名前两个星号(**ele)能收集键值对,传入参数也是字典的形式,key=value
控制流
条件判断
if n1==n2:
.....
elif n2==n3:
.....
else:
.....
循环
while n1: for i in 一堆数据:
... .....
for 循环一般与 range()一起使用,range(t)可生成 0 到 t-1 的整数序列,range(a,b)则是 a 到 b-1
异常处理
list=[0,1,2,3]
for i in list:
try:
print(6/i)
except ZeroDivisionError(错误说明,也可以不写):
print('0不能为除数')
编码
编码表 | 适用性 | 特点 |
---|---|---|
ASCII 码 | 英文,字符 | 占用空间小 |
GB2312 码、GBK 码 | 支持中文 | GBK 码是升级版 |
Unicode 码 | 支持国际语言 | 占用空间大,在 ascii 前补 8 个 0 就是 |
UTF-8 码 | 支持国际语言 | Unicode 的升级,占用空间小,ascii 被包含其中 |
编码与解码
print('编码内容'.encode('编码表')) (编码结果首位的 b 代表 bytes 字节类型的数据)。\x 是分割符
print(解码内容.decode('编码表')) 解码内容通常不是字符串,不必加引号
获取单个字符的十进制整数编码
print(ord('字'),打印出这个字的十进制整数编码
print(chr(24561)),根据十进制再打印出对应的字
类
创建类用 class 声明,类一般第一个字母大写
class Dog():
def __init__(self,name,age):
self.name=name
self.age=age
def sit(self):
print('...')
如例子所示,类有一个init初始化方法,在生成实例的时候就会做,传入参数赋给属性,self 代表传入该实例本身,因此在传入的时候不用写。
在使用类中的方法时要用‘.’来引用。
继承
创建子类时,父类(超类)也必须在当前文件中,且位于子类前面,子类会继承父类中的所有属性和方法,定义子类时要在括号中填入父类的名称。
class Cat(Dog):
def __init__(self,name,age):
super.__init__(name,age)
子类中可增加父类没有的方法和属性,当需要重写父类中某方法时,可一样写上这个方法,然后内容会覆盖父类中的方法。
文件读写
file=open('地址','r',encoding='utf-8')
filecontent=file.read()
filex=file.readlines()
print(filex)
file.close()
file=open('地址','w',encoding='utf-8')
file.write('内容\n')
file.close()
file=open('地址','a',encoding='utf-8')
file.write('内容')
file.close()
读和写都是字符串类型,写和追加若没有文件,都会新建。只写会覆盖原文件,追加再末尾补充
光是 r 是只读文件,要关掉再用 open 再 w 方法才能再写文件。
如果要写入图片或音频之类二进制形式保存的文件,则用 wb 方法写入。
readlines()读取的是一个字符串的列表,列表中每个字符串是文件中每一行,而且还有换行符。直接 read()得到的是一整块不好处理数据,列表就好办了,可以用 for...in 遍历这个列表。
再用 split()方法可以将列表中每行字符串再按空格切分成更小的字符串列表。
join()方法的用法是 str.join(sequence),str 是连接符,可以是''也可以是'-',而 sequence 是数据序列,可以是列表。就能将列表元素拼接成一个字符串。
write()写入的必须是字符串,但是 writelines()可以写入列表。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步