python 基础

运算符

所有运算符的优先级:
(1) 小括号的优先级最高 () => (3+3)*5
(2) 
	一元运算符:同一时间操作一个数的 ( ~ , - ) -6
	二元运算符: 同一时间操作二个数的 
	
** 符号优先级最高
=  符号优先级最低

整体来说,一元运算符优先级大于二元运算符 , ** 除外

乘,除 > 加,减
() > not > and > or 
( << >> ) > & > ^ > |
算术运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符

(1)算数运算符:  + - * / // (地板除) % **(幂运算)
(2)比较运算符:  > < >= <= == != 
(3)赋值运算符  = += -= *= /= //= %= **=
(4)成员运算符  in    not in 针对于容器类型数据
(5)身份运算符  is  is not
(6)逻辑运算符 (and or not)
(7)位运算符 & 按位与  
				000000010011
				000000001111
				000000000011
			| 按位或
				000000010011
				000000001111
				000000011111			
			^ 按位异或	
				000000010011
				000000001111  
				000000011100
			<< 乘以n的2次幂	
				res = 5 << 3	# res = 5 * (3**2)
			>> 除以2的n次幂
				res = 5 >> 3	# res = 5 * (2**3)
			~ 按位非 (针对于补码来进行操作 ,连符号位都要改变) 公式 -(n+1)

变量_Number_str

		变量的命名
字母数字下划线, 首字符不能为数字
严格区分大小写, 且不能使用关键字
变量命名有意义, 且不能使用中文哦

Number (int float bool complex)
	int (整型)
		# 二进制用0b表示 
			intvar = 0b1010
		# 八进制用0o来表示
			intvar = 0o128
		# 十六进制用0x来表示
			intvar = 0xa6	
	float 浮点型(小数类型)
		# 表示方法一
			floatvar = 3.14
		# 表示方法二 (科学计数法)
			floatvar = 5.88e-2

	bool 布尔类型 (True False)

	complex 复数类型
		'''
		复数: 实数 + 虚数 组成的
		j : 如果有一个数,他的平方等于-1,那么这个数就是j
		科学家认为有。属于高精度的类型
		'''
		# 表示方法一
		complexvar = 4+3j
		complexvar = 4j
		# 表示方法二 complex(实数,虚数)
		complexvar = complex(8,-3)



字符串类型
 \n,\r\n: 代表换行
 \t: 代表一个缩进 水平制表符
 \r: 将\r后面的字符串拉倒当前行首
 # 字符串的格式化
	%d : 整型占位符  
	%f :浮点型占位符
	%s :字符串占位符
	语法: 字符串  %  (值1,值2,。。。。。)  
	
	综合案例:
	strvar = "杜磊开工资了,一共%.2f ,看好了一辆车,价格%d元,心情在%s" % (9.99,10,"崩溃的边缘")


	

容器类型数据

容器类型数据
 可哈希的数据  (不可变的数据):Number(int float bool complex) str tuple
 不可哈希的数据 (可变的数据): list set dict
	list	(列表的特性:可获取,可修改,有序)
	tuple	(元组的特性:可获取,不可修改,有序)
	string	(字符串的特性:可获取,不可修改,有序)
	set (集合特征: 自动去重,无序,用途:用于做交集,差集,并集,补给(做交叉并补的))
	dict (字典特征:键值对存储的数据,有序)

字符串的操作_函数

字符串的相关操作
	(1)字符串的拼接 ( + )
	(2)字符串的重复 ( * )
	(3)字符串跨行拼接 ( \ )
	(4)字符串的索引
	(5)字符串的切片: 所谓的切片就是截取 
		语法 => 字符串[::]  完整格式:[开始索引:结束索引:间隔值]
		(1)[开始索引:]  从开始索引截取到字符串的最后
		(2)[:结束索引]  从开头截取到结束索引之前(结束索引-1)
		(3)[开始索引:结束索引]  从开始索引截取到结束索引之前(结束索引-1)
		(4)[开始索引:结束索引:间隔值]  从开始索引截取到结束索引之前按照指定的间隔截取字符
		(5)[:]或[::]  截取所有字符串

字符串的函数
	capitalize 字符串首字母大写
	title 每个单词的首字母大写 (非字母隔开的单词)
	upper 将所有字母变成大写
	lower 将所有字母变成小写 
	swapcase 大小写互换 
	count 统计字符串中某个元素的数量
	find 查找某个字符串第一次出现的索引位置 (如果找不到返回-1)
		find("字符串",start,end) 可以划定范围查找
	index 查找某个字符串第一次出现的索引位置(如果找不到,直接报错)
	startswith 判断是否以某个字符或字符串为开头 
	endswith 判断是否以某个字符或字符串结尾 
	split 按某字符将字符串分割成列表(默认字符是空格)
		split(' ',count) 控制分割几次
	join  按某字符将列表拼接成字符串(容器类型都可)
	replace 替换字符串(可选择替换的次数)
		replace(old,new,n)控制替换几次
	center 填充字符串,原字符居中 (默认填充空格)
	strip  默认去掉首尾两边的空白符 ( \n \t 空格)
	isalnum 字符串中的所有字符都是字母数字且至少有一个字符
	isdigit 检测字符串是数字组成 接受二进制字节流 
	isdecimal 检测字符串是否以数字组成  必须是纯数字 
	format 字符串的格式化
			(1)顺序传参     	{}
			(2)索引传参    		{0} {1}
			(3)关键字传参    	{a} {b}
			(4)容器类型数据传参 {list[0]} {dict['key']}
		填充符号的使用( ^ > < )
			^ 原字符串居中
			> 原字符串居右
			< 原字符串居左
				{who:*>10}
				who : 关键字参数
				*   : 要填充的字符
				>   : 原字符串填充的方向
				10  : 总长度10 = 原字符串长度 + 填充字符的长度
		进制转换等特殊符号的使用( :d :f :s :, )
			:d 整型占位符
			:f 浮点型占位符  :.2f 代表保留两位小数 可以四舍五入
			:s 字符串占位符
			:, 金钱占位符
				# 综合例子
				strvar = "{:s}开工资了,发了{:.2f}钱,买了{:<3d}个降噪耳机"
				res = strvar.format("石墙",999.919,19)
				print(res)

列表的操作_函数

关于列表的操作
	(1)列表的拼接	(同元组)
	(2)列表的重复* 	(同元组) 
	(3)列表的切片 	(同元组)
	(4)列表的获取	(同元组)
		print(listvar[2])
	(5)列表的修改   (可切片)
		listvar[1] = "文创丰"
		listvar[:2] = "abcd"
		listvar[::2] = ["猪八戒","唐僧","孙悟空"]
	(6)列表的删除   (可切片)
		del listvar[0::2]
		del listvar[0::2]

列表的相关函数 增删改查
	增:
		append 功能:向列表的末尾添加新的元素
		insert 功能:在指定索引之前插入元素
		extend 功能:迭代追加所有元素
	删:
		pop		功能:通过指定索引删除元素,若没有索引移除最后那个
		remove	功能:通过给予的值来删除,如果多个相同元素,默认删除第一个
		clear	功能:清空列表
	其他列表函数:
		index	功能:获取某个值在列表中的索引
		count	功能:计算某个元素出现的次数
		sort	列表排序(默认小到大排序)
				reverse=True 选择倒叙 True (从大到小)
		reverse	功能:列表反转操作

集合的操作_函数

0x集合的交叉并补
	& intersection() 交集	
	- difference()   差集	
	| union()		 并集	
 	^ symmetric_difference() 对称差集 (补集情况涵盖在其中)  
	< issubset()	 判断是否是子集
	> issuperset()   判断是否是父集
	isdisjoint() 检测两集合是否不相交

集合的相关函数
	增:
		add()	 向集合中添加数据
		update() 迭代着增加
			setvar.update("abc") 必须是可迭代对象
	删:
		clear()  清空集合
		pop()    随机删除集合中的一个数据
		discard() 删除集合中指定的值(不存在的不删除 推荐使用)
		remove()  删除集合中指定的值(不存在则报错)
	集合不能够修改和查询

定义一个空的冰冻集合
	frozenset():
		冰冻集合仅仅只能做交叉并补,不能做添加或删除的相关操作

字典的函数

0字典的相关函数
	增:
		dictvar = {}
			dictvar["a"] = 1
		fromkeys()  使用一组键和默认值创建字典 ( 不常用 了解)
	删:
		pop()	通过键去删除键值对 (若没有该键可设置默认值,预防报错)
		popitem()	删除最后一个键值对
		clear()	清空字典
	改:
		update() 批量更新(有该键就更新,没该键就添加)
			dictvar = {"top":"鲁班七号","middle":"甄姬","bottom":"盘古"}
			dictvar2 = {"jungle":"韩信","support":"蔡文姬"}
			dictvar.update(dictvar2)
	查:
		get()	通过键获取值(若没有该键可设置默认值,预防报错)
				存在这个键则拿取这个值,如果不存在这个键,则使用默认值,
				如果不设置默认值,默认返回None
	其他操作:
		keys()	 将字典的键组成新的可迭代对象
		values() 将字典中的值组成新的可迭代对象
		items()  将字典的键值对凑成一个个元组,组成新的可迭代对象
		

文件的操作

文件的操作
	open("文件名称","打开的模式","文件的编码")
	open的返回值: 文件的io对象 (简称文件句柄)
	i => input  输入
	o => output 输出
	
	操作模式:
	读:
		r	默认读模式,只读
		rb	二进制的读模式,一般操作非文本文件	
		r+	可读可写 (一般先读后写)
	写:		
		w	写模式,只写
		wb	二进制的写模式,一般操作非文本文件
		w+	可读可写 (默认光标位置文件首) 
	追加:	
		a	追加模式,只追加写
		ab	二进制的追加模式,一般操作非文本文件
		a+	可读可写 (默认光标在文件末尾)    [再写入时,光标位置一个强制在后]
	read()		功能: 读取字符的个数(里面的参数代表字符个数)
    seek()		功能: 调整指针的位置(里面的参数代表字节个数)
				seek(0):移动到文件首行
				seek(0,2):移动到文件末尾
    tell()		功能: 当前光标左侧所有的字节数(返回字节数)
	flush()		强制刷新写入
				刷新缓冲区 flush
					# 当文件关闭的时候自动刷新缓冲区
					# 当整个程序运行结束的时候自动刷新缓冲区
					# 当缓冲区写满了  会自动刷新缓冲区
					# 手动刷新缓冲区

文件操作的函数
	readable() 检测文件对象是否可读
	writable() 检测文件对象是否可写
	readline([n]) 功能: 读取一行文件内容
		如果当前参数值大于实际字符个数,取当前行
		如果当前参数值小于实际字符个数,取参数值这么多的字符
	readlines()		功能:将文件中的内容按照换行读取到列表当中
	writelines()	功能:将内容是字符串的可迭代性数据写入文件中 参数:内容为字符串类型的可迭代数据
		(1) 需要是可迭代性的数据 
		(2) 里面的元素是字符串
	truncate(n)	功能: 把要截取的字符串提取出来,然后清空内容将提取的字符串重新写入文件中 (字节)


"""
read()      参数是字符
readline()  参数是字符
seek()      参数是字节
truncate()  参数是字节
"""
posted @ 2019-04-11 21:41  bytes-xyz  阅读(349)  评论(0)    收藏  举报