Python
Guido von Rossum,一位毕业于阿姆斯特丹大学的荷兰人,1990年,凭一己之力开发出了第一个版本的python的解释器,并一直主导着python的开发。
目前有python2和python3两个分支。
Python缺点:速度慢,代码不能加密。
1.print(“hello world”)
即打印hello world,下载完python后可以通过命令提示符,IDLE或者pycharm来运行。
2.注释
为了方便阅读代码,我们通常会在某些代码后面加上注释,被注释的代码在运行时不会被运行,加注释有两种方法,第一种就是在代码前加#,则这一行代码都被注释,第二种方法就是在一段代码的首尾处加上 ””” 代码”””或者’’’代码’’’
比如#print(“hello world”)
‘’’print(“hello world”)’’’
“””print(“hello world”)”””
3.\n换行
print(“hello\n world”)
运行结果为
Hello
World
4.变量
变量的值随时变动,根据最后的值来定义
A=1
A=2
Print(A)的结果则为2
5.用type可以查看变量的类型值
type(1)的运行结果就为int
6.使用id()函数可以查看变量的地址
id(2)的运行结果可能为10031531456之类的地址
7.变量命名
1)变量名只能包含字母,数字,下画线,且不能以数字开头。
2)变量名不能包含空格
3)不能将Python关键字和函数名做变量名
4)命名时应该注意简短且具有描述性
8.help()函数
当遇到不了解的内置函数时,可以使用help()函数来查看它的使用以及所需要的参数。如:help(print)
9.input()函数
输入函数,无论输入什么,都会被定义为字符串类型,一般用法:变量名 = input()
当我们需要进行操作时,可能会遇到类型错误的问题,比如一个字符串+一个整数则会报错,这时候则可以使用强制转换。如int(a)+10
Python 之禅
整形int bin()转换成二进制,hex()转换成十六进制,oct()八进制
浮点数 float
布尔型 bool 只有True和False两种类型
复数 complex complex(a,b) a为实部,b为虚部 一般用法: a=complex(10,20) a.real 为实部 a.imag 为虚部
字符串 str
使用反斜杠\
使用r
A = hello 则A[2]=l
Print(‘\a’)运行结果就是电脑响铃
Print(‘hello\b world’)运行结果是hellworld
Print(hello + world)运行结果为helloworld
Print(‘hello’*2)运行结果为hellohello
20.列表
1)列表的赋值
X = [1, 3.3, ‘hello’, [1,2]]
2)列表的删除以及列表元素的删除
del(x) del(x[1])
3)列表的索引
X[0] = 1
4)列表的添加
X += [添加的元素]
X.append() 在列表的最后面添加元素
X.extend()的作用与X +=效果一样
X.insert()在列表中插入值,如X.insert(1,10)的值为[1, 10,3.3, ‘hello’, [1,2]]
5)列表元素的删除
del(x[1])
A = x.pop() 删除并取出
Remove(值) 删除不取出
Print(x[2:4]) = [3.3, ‘hello’]
Print(x[:4]) = [1, 10,3.3, ‘hello’]
完整的切片:
[第一个截取的地址:第二个截取的地址:步长]
如x[1:5:2]就是从第二个截取,截取到第四个,其中步长为2
运行结果为[10,’hello’]
X[ : :1]就可以把列表反转
X[ :3]=[10,20,30] 运行结果为[10,20,30, ‘hello’, [1,2]]
23.Index()索引函数
X=[2,5,2,4,7,5,9,7,2,5] index(2# 寻找的元素,1# 从第几个元素开始,4#,从第几个元素结束)=2
24.翻转函数
1)Reverse函数 例:x= [1,2,3] x.reverse() print(x) 得到[3,2,1]
若直接用y=reversed(x) 无法得到结果 需加上print(list(y))
2)sort函数 默认sort(key 判断标准,reverse 排列顺序 默认reverse=false从小到大排,若为字母,按照字母序列排)
len函数可将字符串化为字符数,将列表换为列表中的元素数
max函数求最大值;
min函数求最小;
3)Sorted函数
基础语法格式为list=sorted(iterable,key=None,reverse=False)
iterable 表示指定的序列,key 参数可以自定义排序规则;reverse 参数指定以升序(False,默认)还是降序(True)进行排序。sorted() 函数会返回一个排好序的列表。
4)eval函数 计算字符串---可以将字符串型转化为去引号的相应类型
例:eval(‘1+2’)得到3
5)Exec函数 执行字符串,无返回值
例: exec(“print(3)”) 得到3
6)求和函数sum函数
例:x=[1,2,3] print(sum(x,10#初始值))=16
7)Zip函数
例:x=[1,2,3,4,5,6] y=[a,b,c] z=zip(x,y) print(list(z))得到 (1,a) (2,b) (3,c)
8)enumerate函数--枚举对象
例:x=[‘a’,‘b’,‘c’,‘d’] y=enumerate(x) for i in y print(i) 得到 (1,b) (2,c) (3,d)
9)Range函数
序列解包
x,y,*z=1,2,3,4 print(z)=[3,4]
25.字典
1)生成字典
2.dict函数 print(dict(n=7,m=6))得到{n:7,m:6}
3.fromkeys函数
dict.fromkeys(‘hello’) 得{‘h’=None,’e’=None,’l’=None,’o’=None}
3)修改键值
对于已有键d[‘x’]=1945029241改变键值,对于未有键d[‘y’]=666新增键值
4)删除键值
1.For i in person:
Print(i,person[i])
2. For i,j in person.items():
Print(i,j)
3.for i in person.keys():
print(i,person[i]);
1)接赋值创建b = {1,3,4}
2)Set函数创建 例:b = set(‘world’) print(b)得到{‘w’,’o’,’r’,’l’,’d’}
3)Add函数用以添加元素
4) Pop函数用以随机删除一个元素,remove函数用以指定删除函数(若无指定函数,报错),discard函数用以删除函数但若无指定函数不会报错
5)集合的关系运算
并集:使用union函数创造两函数的并集,update函数更新函数
交集:intersection函数创造
差集:difference函数--利用了并集,或直接a-b
27.随机函数random
1)导入random模块
2)Random.choice表示输出列表x中的一个随机数
3)Random.randint生成括号中两元素之间的随机整数
28.格式化运算符
1)替换浮点数 %f在百分号(“ ”内的%)后加整数表示打印的宽度,加小数如:%.2表示保留2位小数
2)字符%s
3.)整数%d
4){}替换任意类型,后接.format()
例:name=’xyj’,age=19,score=150
Print(“我叫{},我{}岁,我高考{}分”.format(name,age,score)))
(1)若在{}中填整数表示位置索引
例:Print(“我叫{2},我{0}岁,我高考{1}分”.format(age,score,name))
(2)若在{}中填变量名同样可表示索引(需要给字段和参数命名,一一对应)
例:Print(“我叫{n},我{a}岁,我高考{s}分”.format(a=age,n=name,s=score))
(3)空{}和{变量名}可以混用,但是注意顺序!
(4)*的使用,调用字典、列表
例: 调用列表d:Print(“我叫{n},我{a}岁,我高考{s}分”.format(*d)))
调用字典info:Print(“我叫{n},我{a}岁,我高考{s}分”.format(**info)))
(5)使用f字符串
例:Print(f“我叫{name},我{age}岁,我高考{score}分”)
1)capitalize使一句话中第一个字母大写,其他字母小写
2)title使一句话中每个单词首字母大写
3)upper和lower全大或全小写
4)swapcase大写变小写,小写变大写
30.对齐和空格的处理方法
1)ljust左对齐,后接三个元素,分别是self,宽度,填充物
例:
2)rjust右对齐
31.字符的分割
lsplit左分割,rsplit右分割
例:print(‘1+2\n+3+4’.splitlines()) 得到[‘1+2’,’+3+4’]
例:str = ’hello, welcome to Beijing’
Print(str.partition(‘w’))得到(‘hello,’,’w’,‘elcome to Beijing’)
32.字符串拼接
Join函数
33.字符串查找与替换
判断:Startwith ;isalpha;endwith
判断是否全为字母isdigit
是否全为数字isalnum
是否全为字母或字符isspace
查找:find(从左往右找),
rfind(从右往左找)找到报位置,找不到报-1;
index,rindex找到报位置,找不到报错
替换:replace只替换一种,不需要替换前后长度相等
maketrans先产生映射再替换
例:table = str.maketrans(‘as’,’be’)--------利用密码表
Print(table)得到{97:98,115:101}
配合translate 如:print(d.translate(table))即利用映射进行替换
34.函数
使用”””三引号为函数添加文档字符串,使用help函数可以查看定义函数的文档字符串 或者用d.__doc__查看文档字符串
例:Def person(name,height=”150”,weight=”75”)#即默认身高150体重75,但是名字必须赋值
Print(name,height,weight)
person(李四)得到:李四,150,75
1)定义时默认形参数必须在所有非默认形参数后面
2)若对象为可变对象,则每次调用函数时,若对默认形参引用的对象进行修改,则修改的都将是同一对象(为防止此现象发生,可在定义时将该对象定义为none,然后每次判断;或者直接取消该参数,将其移至函数操作内部)
3)函数内的局部变量无法在全局使用,但是在使用函数时,优先使用局部变量,若无该局部变量再使用全局变量
4)不能在函数内部直接修改全局变量的值,但是可以使用global后接全局变量以声明在函数内部使用的是全局变量(但是不推荐在函数内部修改全局变量)
6.函数返回值
Return
定义函数若无返回值,打印函数本身并默认返回None,无结果。
Test()函数带入值测试函数
7.可变长度参数
Def add_many(a,b,*iter,c) #iter可以任意命名
注:加一个*收回后续所有给出的值,加两个**仅收回关键参数
函数的使用:在函数内部调动自己
定义名 例:x = lambda a,b=6:a+b*3
即将x函数定义为将a与二倍b相加,且参数b默认为6
class 类名(object): #定义类名需要大写首字母
例:
def __init__(self,name,age,weight)
#若添加__slot__则规定只能有后面几个参数
Self.name=name
Self.age=age
Self.weight=weight
Print(‘666!’)#每次创建对象都会执行
Def sleep(self)
Print(‘%s睡觉’%.self)
Gender函数可以用于添加属性,s1.name=’李四’实现修改name参数
Isinstance函数可以用于检查一个对象是否属于该类的参数
函数用于检查一个类是否为另一个类的子类
5.当使用print语句时,会自动调用__str__方法来将对象转化为 字符串输出。
def __str__(self):
return '姓名:{},年龄:{}'.format(self.name, self.age)
__repr__方法也用于将对象转化为字符串,但优先级低于 __str__方法。
__add__方法使得两个对象可以相加。
6.实例对象和属性
调用对象的属性必须通过实例对象 例:应用p1.type而非person.type
修改对象属性即实例属性无法修改类属性,若使用类名person调用,必须手动给self传参
7.私有属性和方法的使用
私有属性(创建类时属性名前加__表示这是一个私有属性);不能从外部直接通过对象名访问到,可以访问_类名+属性名;
Def get__bike(self):
Return self.__bike即通过内部访问调用
39.继承
Python中的继承是一种机制,它允许一个类从另一个类中继承属性和方法。被继承的类被称为父类或基类,继承的类被称为子类或派生类。子类可以继承父类的所有属性和方法,并且还可以添加自己的属性和方法。
Python中的继承通过在子类中使用父类的名称来实现。例如,下面的代码定义了一个父类Animal和一个子类Dog:
在这个例子中,Animal是父类,Dog是子类。Dog继承了Animal的属性和方法。子类可以重写父类的方法,这就是为什么在Dog类中定义了一个新的speak()方法。
可以使用super()函数来调用父类的方法。例如,下面的代码重写了Dog类的__init__()方法,并使用super()函数调用。
40.文件
1)打开文件方式,默认r表示只读
2)打开文件时的编码方式,unicode是全球统一编码,在内存中运行; utf-8优化
3)Open()会有一个返回值,即打开文件对象
4)文件路径可以是绝对路径或相对路径。绝对路径包括文件存储在电脑的哪个盘符,复制时最好使用原始字符串,并在前面加上mode=r以只读方式打开文件(如果是rb,则以二进制形式读取字节)。相对路径是指当前文件所在的文件夹位置。