0005-20180422-自动化第六章-python基础学习笔记
day6
内容回顾:
	1. 变量
	2. 条件
	3. while循环
4. 数据类型
		- int
			- bit_length
		- bool
			- True/False
		- str
			- upper
			- lower
			- strip
			- split
			- replace
			- join
			- capitalize
			- startswith
			- endswith
			- isdecimal
		- list
			- append
			- insert
			- reverse
		- tuple
			-
		- dict
			- get
			- items
			- keys
			- values
	5. for
6. range
7. 编码
		ascii
		unicode
		utf-8
		gbk
8. else
if xxx:
			pass
		else:
			pass
while True:
			pass
		else:
			pass
for item in xxx:
			pass
else:
			#	当可迭代对象中的元素,被循环完毕后执行一次
			pass
例题:
while True:
					for k in dic:
						if 'k' in k:
							del dic[k]  #删除后如果没有下一行的break跳出此轮的for循环则字典会报错----删除了循环中的字典键值
							break
					else:   #for循环结束的标志----使用else
						break
				print(dic)
while True:
					for k in dic:
						if 'k' in k:
							del dic[k]  #删除后如果没有下一行的break跳出此轮的for循环则字典会报错----删除了循环中的字典键值
							break
						break
				print(dic)
今日内容:
	1. 数据类型
		- bytes	-----gbk,utf-8,..编码
		表现形式:name = b"alex"	
				  name =  b'\xe6\xb5\xb7\xe5\xa8\x87'	#海娇 #如果有中文表现形式为16进制字符
		内部原理:utf-8或gbk...
					- upper
			***bytes 里的功能同str一样,只是表现形式不同而已***
			- lower
			- strip
			- split
			- replace
			- join
			- capitalize
			- startswith
			- endswith
			- isdecimal
- int
			- bit_length
			- to_bytes ,将数字转换为字节类型,6表示用多少个字节表示,little/big用于指定生成字节的顺序
				val = 66
				#计算机硬件CPU处理的大端,小端
				result=val.to_bytes(6,'big')#6控制的是生成多少个字节的字符,big表示大端,CPU处理时,指示是从后往前读(big)还是从前往后读(little)
				print(result)
				#b'\x00\x00\x00\x00\x00B'
val = 66
				#计算机硬件CPU处理的大端,小端
				result=val.to_bytes(6,'little')#6控制的是生成多少个字节的字符,big表示大端,CPU处理时,指示是从后往前读(big)还是从前往后读(little)
				print(result)
				#b'B\x00\x00\x00\x00\x00'#此处显示3位,大写的B是assic码表示66的编码,与二进制没有关系
- from_bytes #将字节再转换为数字
val = 2
				result=val.to_bytes(6,'little')
				print(result)
#将字节再转换为数字:
				data = int.from_bytes(result,'little')
				print(data)
				#b'\x02\x00\x00\x00\x00\x00'
				#2
- bool
			- True/False
		- str	----unicode编码  #py3中默认	 name = "alex"	--->网络传输或存硬盘则转换为字节:name = b"alex"
			表现形式:name = "alex"
					  name = '海娇'	# 海---占4个字节的01,娇---占4个字节的01
			内部原理:unicode
示例:
			# a = "alex" 通过gbk编码在硬盘或网络传输中的01查看
			a = "alex".encode('gbk')
			for i in a:
				print(bin(i))
# D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
			# 0b1100001
			# 0b1101100
			# 0b1100101
			# 0b1111000
name = "海娇".encode('gbk')
			for i in name:
				print(bin(i))
D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
			0b10111010
			0b10100011
			0b10111101
			0b10111111
name_str = "海娇" #默认unicode编码格式8个字节
			name_tytes = name_str.encode('utf-8')   #转换为utf-8编码后6个字节
print(name_tytes)
			# D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
			# b'\xe6\xb5\xb7\xe5\xa8\x87'
name_str = "海娇" #默认unicode编码格式8个字节
			name_tytes = name_str.encode('gbk')   #转换为gbk编码后4个字节
print(name_tytes)
# D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
			# b'\xba\xa3\xbd\xbf'
#二进制打印字符串以utf-8编码的字符------海娇----在内存中的二进制编码
			name_str = "海娇" #默认unicode编码格式8个字节
			name_tytes = name_str.encode('utf-8')   #转换为gbk编码后4个字节
			for i in name_tytes:
				print(bin(i))
			# b'\xe6\xb5\xb7\xe5\xa8\x87'
# D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
			# 0b11100110
			# 0b10110101
			# 0b10110111
			# 0b11100101
			# 0b10101000
			# 0b10000111
name_str = "查显忠" #默认unicode编码格式12个字节
			name_tytes = name_str.encode('utf-8')   #转换为gbk编码后9个字节
			print(name_tytes)
			for i in name_tytes:
				print(bin(i))
D:\Install-File\python-work\venv\Scripts\python.exe D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
			b'\xe6\x9f\xa5\xe6\x98\xbe\xe5\xbf\xa0'
			0b11100110
			0b10011111
			0b10100101
			0b11100110
			0b10011000
			0b10111110
			0b11100101
			0b10111111
			0b10100000
- upper
			- lower
			- strip
			- split
			- replace
			- join
			- capitalize
			- startswith
			- endswith
			- isdecimal
			- encode('utf-8或gbk') #把字符串转换为字节
				示例:
					name = "海娇"
#把unicode编码的字符串,转换为utf-8编码的字节:
					v1 = name.encode('utf-8')
					#把unicode编码的字符串,转换为gbk编码的字节:
					v2 = name.encode('gbk')
					print(v1)
					print(v2)
# b'\xe6\xb5\xb7\xe5\xa8\x87'
					# b'\xba\xa3\xbd\xbf'
					#以上utf-8和gbk编码的海娇互相不认识
			- casefold		#可以转换所有语种的大写转小写
- list
			- append
			- insert
			- reverse
		- tuple
			-
		- dict
			- get
			- items
			- keys
			- values
a、字节和字符串相关:
内存:unicode编码的0101
硬盘:utf-8 gbk gb2312编码的0101
本质上,内存中都是01010101,具体是什么样子的01,需要根据编码来决定。
		不同编码的0101,互相不认识。
a = "alex"
python3:
			utf-8 -> 010100101
			特殊的:
				字符串:
					表现上:a = "alex" 
					# ()本质是unicode编码的010101
				字节:bytes
					表现:a = b"alex"
					本质:010101,某种编码:utf-8,gbk,...
总结:
		python3 
			str	  --> unicode
			bytes --> gbk,utf-8,...
2. 文件操作
=============================脚本==========================
删除字典中带K字符的键值对脚本:
#删除字典中带k字符的键值对
"""
#方法1:
dic = {
'k1':'v1',
'y2':'v1',
'k11':'v1'
}
#把key重新创建一份
key_list = []
for k in dic:
#print(k)
key_list.append(k)
#循环所有的key
for key in key_list:
#print(key)
if 'k' in key:
del dic[key]
print(dic)
""" """
#方法2
dic = {
'k1':'v1',
'y2':'v1',
'k11':'v1'
} while True:
for k in dic:
if 'k' in k:
del dic[k] #删除后如果没有下一行的break跳出此轮的for循环则字典会报错----删除了循环中的字典键值
break
else: #for循环结束的标志----使用else
break
print(dic) """ """
#方法3 dic = {
'k1':'v1',
'y2':'v1',
'k11':'v1'
} for key in list(dic.keys()):
if 'k' in key:
del dic[key]
print(dic)
"""
设置for循环完毕的条件脚本:
#设置for循环完毕的条件: li = [11,22,33,44,55]
for item in li:
print(item)
else:
print('for-循环完毕')
数据类型补充知识相关脚本:
"""
# a = "alex" 通过gbk编码在硬盘或网络传输中的01查看
a = "alex".encode('gbk')
for i in a:
print(bin(i)) # D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
# 0b1100001
# 0b1101100
# 0b1100101
# 0b1111000 """ """
name = "海娇".encode('gbk')
for i in name:
print(bin(i))
# D: / Install - File / python - work / auto - chapter6 / 3 - data -class -supplement.py
# 0b10111010
# 0b10100011
# 0b10111101
# 0b10111111 """ """
name_str = "海娇" #默认unicode编码格式8个字节
name_tytes = name_str.encode('utf-8') #转换为utf-8编码后 print(name_tytes)
# D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
# b'\xe6\xb5\xb7\xe5\xa8\x87'
""" """
name_str = "海娇" #默认unicode编码格式8个字节
name_tytes = name_str.encode('gbk') #转换为gbk编码后4个字节 print(name_tytes) # D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
# b'\xba\xa3\xbd\xbf'
""" """
name_str = "海娇" #默认unicode编码格式8个字节
name_tytes = name_str.encode('utf-8') #转换为gbk编码后4个字节
for i in name_tytes:
print(bin(i)) # D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
# 0b11100110
# 0b10110101
# 0b10110111
# 0b11100101
# 0b10101000
# 0b10000111
""" """
name_str = "查显忠" #默认unicode编码格式8个字节
name_tytes = name_str.encode('utf-8') #转换为gbk编码后4个字节
print(name_tytes)
for i in name_tytes:
print(bin(i)) # D:\Install-File\python-work\venv\Scripts\python.exe D:/Install-File/python-work/auto-chapter6/3-data-class-supplement.py
# b'\xe6\x9f\xa5\xe6\x98\xbe\xe5\xbf\xa0'
# 0b11100110
# 0b10011111
# 0b10100101
# 0b11100110
# 0b10011000
# 0b10111110
# 0b11100101
# 0b10111111
# 0b10100000 """ """
name = "海娇" #把unicode编码的字符串,转换为utf-8编码的字节:
v1 = name.encode('utf-8')
#把unicode编码的字符串,转换为gbk编码的字节:
v2 = name.encode('gbk')
print(v1)
print(v2) # b'\xe6\xb5\xb7\xe5\xa8\x87'
# b'\xba\xa3\xbd\xbf'
#以上utf-8和gbk编码的海娇互相不认识
"""
数据类型整数补充相关知识脚本:
##################int###########
"""
val = 9
result = val.bit_length() #二进制位所占的最大长度
print(result)
""" """
val = 2
result=val.to_bytes(3,'big')
print(result)
b'\x00\x00\x02'
""" """
val = 2
result=val.to_bytes(6,'big')
print(result)
#b'\x00\x00\x00\x00\x00\x02'
""" """
val = 66
#计算机硬件CPU处理的大端,小端
result=val.to_bytes(6,'big')#6控制的是生成多少个字节的字符,big表示大端,CPU处理时,指示是从后往前读(big)还是从前往后读(little)
print(result)
#b'\x00\x00\x00\x00\x00B'#此处显示3位,大写的B是assic码表示66的编码,与二进制没有关系 #idle测试输出如下:
# >>> bin(66)
# '0b1000010'
# >>> """ """
val = 66
#计算机硬件CPU处理的大端,小端
result=val.to_bytes(6,'little')#6控制的是生成多少个字节的字符,big表示大端,CPU处理时,指示是从后往前读(big)还是从前往后读(little)
print(result)
#b'B\x00\x00\x00\x00\x00'#此处显示3位,大写的B是assic码表示66的编码,与二进制没有关系
""" val = 2
result=val.to_bytes(6,'little')
print(result) #将字节再转换为数字:
data = int.from_bytes(result,'little')
print(data)
数据类型字符串补充相关知识脚本:
##########str##########
#str
"""
name = 'alEx'
result = name.casefold()#β在法语里通通过casefold转为小写ss
#casefold可以转换所有语种的大写转小写
print(result)
result = name.lower()#英文字母的转小写
print(result) name = 'β'
result = name.casefold()
print(result) """
#center---在中间的两侧分别插入指定字符,总宽度为指定宽度
"""
name = 'alEx'
val = name.center(20,'*')
print(val)
#********alEx********
"""
"""
name = 'alE'
val = name.center(20,'*')
print(val)
#********alE*********
""" #rjust 和 ljust 分别在右侧或左侧插入指定字符,总宽度为指定字符
"""
name = 'alEx'
val = name.ljust(20,'*')
print(val)
#alEx****************
""" """
name = 'alEx'
val = name.rjust(20,'*')
print(val)
#****************alEx
""" #count
name =''
0005-20180422-自动化第六章-python基础学习笔记的更多相关文章
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
		
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
 - 0001-20180421-自动化第一章-python基础学习笔记
		
======================学习python==================介绍: python种类: cpython(*),jpython,ironpython,rubypyth ...
 - 0006-20180422-自动化第七章-python基础学习笔记
		
内容回顾: - bytes - str 和bytes - int - str - list - tuple - 深拷贝和浅拷贝 今日内容: 数据类型 - bytes - int - str - boo ...
 - 0004-20180422-自动化第五章-python基础学习笔记
		
内容回顾:1.数据类型 2.for和while循环 continue break #如下循环将怎么打印结果? for i in range(1,10): print(i) for i in range ...
 - 0003-20180422-自动化第三章-python基础学习笔记
		
3章 内容回顾: 1. 计算机组成 2. 程序编译器 3. 变量 4. 条件 5. 循环 6. py2与py3区别 - 默认编码, - 除法, - input ,raw_input 7. 位,字节关系 ...
 - Python基础学习笔记(六)常用列表操作函数和方法
		
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-lists.html 3. http://www.liaoxuef ...
 - python 基础学习笔记(1)
		
声明: 本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...
 - 第一课、python基础学习笔记
		
自动化非自动化的区别 自动化测试就是让机器按照人的想法把功能全部跑一遍 自动化测试的过程,让我们写一段程序去测试另一段程序是否正常的过程 Java 编译型语言, 编码-->编译-->解 ...
 - Python基础学习笔记(十三)异常
		
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-exceptions.html Python用异常对象(excep ...
 
随机推荐
- node常见操作命令
			
进入REPL环境(READ EVAL PRINT LOOP) 接收用户输入 执行用户输入 打印执行结果到控制台 循环到下一次 打开终端,键入node进入命令交互模式,可以输入一条代码语句后立即执 ...
 - PHPExcel所遇到问题的知识点总结
			
工作中进行excel的时候遇到了两个问题, 1.excel表中列值过大,由于没有进行特殊处理,程序没法正常运行: 2.列值中含有日期格式的文本,不能正确读取: 所以通过网络搜索,并解决了问题,记录一下 ...
 - Centos VMware 克隆后 网络配置
			
第一步:生产新的网卡地址,启动系统. 第二步:修改主机名(注:此处根据个人需要,不修改也行,此处我是用于搭建集群,修改主机名做区分) 执行命令:vi /etc/sysconfig/network 修改 ...
 - I - 昂贵的聘礼
			
来源poj1062 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求 ...
 - vue 拍照上传图片 demo
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - php三级联动(html,php两个页面)
			
<!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...
 - MySql的主从复制以及读写分离详解
			
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中, ...
 - PAT甲级1143 Lowest Common Ancestor【BST】
			
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805343727501312 题意: 给定一个二叉搜索树,以及他的前 ...
 - MSCKF_VIO:MSCKF的双目版本
			
论文:MSCKF的双目版本 Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight 下载地址:点击 源码地址:https:/ ...
 - [No0000196]一文读懂Java 11的ZGC为何如此高效
			
导读:GC是大部分现代语言内置的特性,Java 11 新加入的ZGC号称可以达到10ms 以下的 GC 停顿,本文作者对这一新功能进行了深入解析.同时还对还对这一新功能带来的其他可能性做了展望.ZGC ...