Python基础学习笔记

前序

博主本身是一名java搬砖工人,最近在极客时间上学习覃超老师的算法基础课程,课程中很多解题示例代码都是用Python写的,在很多语法不理解的状态下也了解了Python相比java在编程上的便捷,所以对Python产生了一些兴趣,便去图书馆借了一本《Python基础案例教程》,进行了Python基础编程的自学,还书之前做了下读书笔记,就让它开启我打破CSDN只看不发的恶习吧!

正文

书籍本身对Python和编程的一些基本常识都做了介绍,但我在学习时是依据java做了对比,所以很多编程中常识性的的名次或者代码,符号的含义就没有做记录,只记录的自己觉得重要的内容,使用自己的理解做了笔记,可能有些不完善或者他人不好理解,见谅~

基础

Python的基本语法:
1.严格区分大小写
2.每一行就是一条语句,每条语句以换行符结束
3.建议每行代码不超过80字符
4.分多行编写一条语句,每行语句中都要加引号来包裹代码
5.缩进严格,不能随意缩进

print()函数: 控制台输出方法
基本语法:print(arg1[,arg2])

input()函数: 控制台输入方法

注释符号:

#单行注释
''' 多行注释 '''

变量:

不可变变量:数字,元组,字符串
可变变量:列表,字典,序列
变量声明:a=1,b='123',
赋值:支持为多个变量同时赋值,a=b=c=235;a,b,c = '1','2','3'

数据类型:

整型:整数大小无限制
浮点型:pyhton中的浮点型为float类型
布尔型:True/False
字符串:定义方式:''/""都可以,非字符串与字符串拼接输出时需			要print(arg1,arg2);
占位符:字符串占位符%s,
使用方式a = '12%s56%s90'%	('34','78')
浮点数占位符%f,整数占位符%d
格式化字符串:使用f创建格式化字符串
示例:
	a = '我是变量a'
	b = '我是变量b'
	c = f'hello{a} {b}'
字符串赋值:将字符串与数字相乘可将字符串重复指定的次数返回
空值:None
类型检查:type(obj)
类型转换:int(),float():转换布尔值时F-0,T-1;

str();bool():对于所有表示空性的对象都会转换为False,其余转换为True

运算符:

算术运算符:
	*:字符串与数字相乘,返回字符串重复次数
	 /:除法运算符,返回浮点数
	 //:整除运算符
	 **:幂运算符,返回一个值的几次幂
赋值运算符:无差异
关系运算符:
	is:比较两个对象是否是同一个对象
	is not: 比较两个对象不是否是同一个对象
逻辑运算符:
	not(逻辑非),and(逻辑与),or(逻辑或)
条件运算符:无差异
三目运算:max = a if a > b else b

控制流程

if-else结构:
基本结构:

	if()
		代码块1
	elif()
		代码块2
	elif()
		代码块3
		...
	else
	 	代码块

for循环:
基本结构:

	for 变量 in 序列 : 
		代码块

常用到range()函数,生成一个自然序列

while循环:
基本结构:

	while 条件表达式
		代码块
	else:
		代码块
可以使用break退出循环(包括else)

序列

Python分为可变序列(list)和不可变序列(str和tuple:元组)

列表:

使用[]创建,示例:my_list=[];my_list[10,20,30]
索引:获取my_list[1],可以为负数
列表的切片:列表[起始:结束:步长],获取一个子列表,步长:每隔步长的个数获取一个数据
修改:my_list[0]=50
通过切片修改:列表[第一个修改元素位置:元素个数:步长]
删除:切片删除:列表[第一个修改元素位置:元素个数:步长]
列表运算符:
	+:拼接列表;*:重复指定次数;
	in:检查元素是否在列表中
	not in:检查元素是否不在列表中
	len():返回列表长度
	min():获取列表中的最小值
	max():获取列表中的最大值
列表方法:
	index():获取指定元素在列表中第一次出现的索引
	count():统计指定元素在列表中出现的次数
	append():向列表的最后添加一个元素
	insert():向列表的指定位置插入一个元素
	extend():使用新的序列来扩展当前序列
	clear():清空序列
	pop():根据索引删除并返回被删除的元素
	remove():删除指定值得元素,有多个只删除第一个
	reverse():反转列表
	sort():排序,默认升序,降序要添加reverse=True参数
列表的遍历:
	使用while 或者 for循环
	for循环示例:
	
		for i in list:
			print("序号:%s   值:%s" % (i + 1, list[i]))

元组: 不可变序列,操作基本跟列表一至,不希望列表改变时使用

创建元组:my_tuple = () or my_tuple = (1,2,3,4),不为空时可以省略括号

字典: 相当于数据结构中的Map

创建:
	d = {} or d = {key1:value1,key2:value2...}
	 or
	d = dict(k1=v1,k2=v2) 
	 or 
	d = dict([(key1:value1,key2:value2)])(子序列)
获取:d[key],get(key[,defaul]))
修改:
	d[key] = newValue 
	or 
	d.setdefault(key,[,default]) 
	or 
	d.update([other]) 
	or 
	使用copy()函数修改字典值
删除:
	del d[key]
	or
	popitem():随机删除一个键值对并返回
	or
	pop(key[,default]):删除元素并返回value
clear():清空字典
遍历:
	 keys(): for k in d.keys():
	 values(): for v in d.values():
	 items(): for k,v in d.items()
常用函数:len(),in,not in

***集合:***无序不重复的元素序列

创建:必须使用set()
	常用方法:
		set():创建集合
		len():获取集合中元素的数量
		in/not in: 在或不在
		add():添加一个元素
		update():将一个集合中的元素添加到当前集合
		remove():删除集合中的指定元素
		clear():清空集合
		copy():对集合进行浅复制
集合运算:
	&:交集
	|:并集
	-:差集运算
	^:异或集运算
	<=:是否为子集
	<:是否为真子集
	>=:是否超集
	>:是否真超集

函数

基本:

基本语法:
	def 函数名([arg1,arg2,arg3,...,argN]):
		函数体
默认参数:
	def powerofn(num, n=2)(n不传值时,默认为2):
不定长参数:参数个数不确定
 定义方式:形参前加*
	 def avg(* num) :
		函数体
返回值使用return返回
高阶函数:将另一函数作为参数的函数,或将函数作为返回值的函数
	实例:
		def getsum(x,y,fn):
			 return fn(x) + fn(y)

闭包:将内部函数作为返回值返回,内部函数使用到外部函数的变量
	def make_averager();

面向对象

类:

结构:
class 类名([父类]):
	公共属性...
	 #初始化方法
	def __init__(self,...):
		  ...
	#其他方法
	def method_1(self,...):
		 ...

	def method_2(self,...):
 		...
 		
实例化类:
#创建一个类:
	class Person:
		类体
#实例化类
	 p = Person()
	 
类的特殊方法:__methodName__,自动调用

封装
	类的私有属性:一般情况下,__或者_开头的属性是私有属性
	getter和setter方法:get_属性名/set_属性名
	*self参数:只在类中的方法使用,对象本身,默认把对象本身
	传给方法的第一个参数
	property:将一个getter和setter方法转换为的对象的属性
	getter方法:@property修饰,使用d.方法名
	setter方法:@属性名.setter

继承:支持多重继承
	class 子类(父类A,父类B)

多态:实现方式与java类似
	isinstance(B,A)函数:判断B类是否是A类的子类

静态方法:静态方法使用@staticmethod来修饰

垃圾回收:python自带垃圾回收

模块: 在Python中,一个py文件就是一个模块

引入外部模块:
方法:
	 1.import模块
	 2.inport模块名 as 模块别名
	 3.from模块名 import 属性,属性(模块中的变量,方法,函数等)
	 4.from模块名 import *(引入模块的所有内容)
	 5.from模块名 import 属性 as 别名(引入单个属性时)

模块私有化变量:
	使用_开头的变量

私有化函数:只在主模块执行,被其他模块调用时不需要执行,使用函数私有化处理,示例:
	if __name__ == '__main__':
		代码块

模块主函数:
	每个模块都有一个__name__属性,通过这个属性可以获得模块的名字;
	__name__为__main__的模块是主模块,直接通过Python执行的模块

异常:

结构:
	 try:
	   代码块(可能出现错误的语句)
	 except 异常类型 as 异常名:
	   代码块(出现问题后的操作)
	 except 异常类型 as 异常名:
	   代码块(出现问题后的操作)
	 else:
	   代码块(没出现异常的操作)
	 finally:
	   代码块(总会执行)

Exception是所有异常的父类,except后什么都不跟默认为捕获所有异常,
自定义对象需要继承该类

文件:

示例:
创建文件
	#定义读取文件路径
	file = 'myFile'
	try:
	 obj = open(file, encoding = 'utf-8') #使用open()函数返回路径对应的文件对象
	 print(obj)
	except FileExistsError:
	 print('文件找不到')

文件操作函数:
	output = open(r'C:\file','w):创建输出文件(w指写入)
	intput = open('data','r'):创建输入文件(r指读取,为默认值)
	input.read(N):读取N个字节,默认为1
	input.readline()/readlines():读取下一行到一个字符串/读取整个文件到字符串列表
	output.write(aString)/writeLines(aList):写字节字符串到文件/把列表内所有字符串写入文件
	close():关闭文件
	output.flush():将输出缓存区的内容刷到硬盘中,但不关闭文件
	anyFile.seek(N):修改当前文件位置到偏移量N处以便进行下一操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值