Python基础知识笔记

数据类型

字符串:双引号或者单引号引起来的文本

字符串内字符都有序号,正向是从 0 开始,反向是-1 开始。str[-1]指的就是最后一个字符。

字符串的拼接:

    • 号,对于字符串或者非字符串使用该符号就能拼接成一个字符串。
  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()可以写入列表。

posted @   脏猫  阅读(28)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示