Python基础 1数值类型 序列类型
1.1数值类型
1.常用运算符:
+ - * / %(取余) //(取整数) **(次方)
2.整数与小数的运算 返回float
3.decimal的运算 更精确一些
4.布尔型的计算 True False
5.复数演示
6.了解math模块 import math
7.Decimal
1 from decimal import Decimal 2 Decimal(10)/Decimal(3) 3 Decimal('10.5')/Decimal(3) 4 print(type())
1.2序列类型(列表,元组)
1.2.1列表list (可以被更改) 可嵌套
1 a=[ 1,2,3,4,5,6,7,8,9,20.0,30.0,(100,200,300),[400,500,600]] 2 print(a[2]) 3 print(a[2:3]) #取左不取右 右边不写则是取到最右边 4 print(a[0:20:2]) #步长 5 print(a[-1]) 6 ########### #切片取出的是列表 7 print(a[2:3][0]) #取出的是字符串 8 ########### 9 10 b1='20180910' 11 print ('year=',(b1[0:4])) 12 print ('month=',(b1[4:6])) 13 print ("day=",(b1[6:]))
1.2.2元组tuple (不可以被更改)元组和列表取值是差不多的
a=(100,200,300)
b = list(a) 元组转成列表
1.3列表方法
-
增:
append 到最后的位置 insert 插入到某个位置 extend 扩展 两个列表融合到一个列表
-
删:
pop 通过索引删除 remove 通过内容删除 删除出现的第一个 clear 清空整个列表
-
改:
li[0] = ' list '
-
查:
index 查找内容的索引 出现的第一个 count 查找元素个数
-
其他方法:
copy 浅复制 reverse 列表反转 sort 排序
1 my_list = ['Tom','Wang','du'] 2 my_list.append( 'hahahaha') 3 my_list.insert(1,'hansha') 4 my_list2=[15,20] 5 my_list.extend(my_list,my_list2) 6 my_list.pop(2) 7 my_list.remove('Tom') 8 my_list[1]='wangyangyang' 9 print(my_list.index('du')) 10 print(my_list.count('du')) 11 12 my_list3=my_list.copy() 13 my_list.reverse() 14 my_list.sort()
1.4元组方法
-
查:
index 查找内容的索引 出现的第一个 count 查找元素个数
-
元组间接变化:
1 tuple_a=(1,2,3,'ahsd',555) 2 3 list_a=list(tuple_a) 4 list_a.append( 'hahahaha') 5 tuple_a=tuple(list_a)
1.5字符串方法 (可以索引 可以切片)
-
查
count 计算某元素出现的次数 find 查找内容的索引 出现的第一个 找不到不会报错 index 查找内容的索引 出现的第一个 找不到报错 isdigit 是否只有数字 isalpha 是否只有英文 endswith 是否以。。结尾 startswith 是否以。。开头 islower 是否是小写 isupper 是否是大写
-
改 (生成一个新的字符串)
upper 变成大写 lower 变成小写 strip (lstrip,rstrip) 去除字符串左右两边字符 capitalize title split 根据某个条件分割
-
删
replace 替换
-
增
字符串拼接
1 my_str='asdada fjh afjk ahk jfhaf ha h' 2 new_str=my_str.strip() 3 new_str=my_str.split('/') 4 new_str=my_str.replace('asd','666')
- 字符串常用方法:
1 a="abcABC" 2 #公共方法len(a),type(a) 3 a.capitalize() #首字母大写 4 a.upper() #转换大写 5 a.lower() #转换小写 6 a.swapcase() #大小写转换 7 a.casefold() #转换小写 8 9 a.title() #转换成标题 10 a.center(20,"*")#设置宽度,并居中,20为总长度,*为空白处填充 11 a.ljust(20,"*") #左边 12 a.rjust(20,"*") #右边 13 a.zfill(20) #默认使用0填充,长度20 14 a.expandtabs() #补tab键 15 a.count("xx",star,end) #计数出现次数,star开始位置,end结束位置 16 17 a.strip() #去全部空格、换行 18 a.lstrip("xx") #去除左边 xx 19 a.lstrip() #去左边空格 20 a.rstrip() #去右边空格 21 22 a.partition("s") #字符串按照第一个s进行分割,分三份 (包含分割元素s) 23 a.split("s") #a.split("s",2) 按照s进行分割 ,2为分割次数 (不包含分割元素s) 24 a.splitlens() #按换行符分割 25 26 a.find("ex",start=None, end=None) #找到第一个对应字符串的索引,默认是找整体,也可单独指定判断位置 (找不到返回-1) 27 (a.index()与find相同,但找不到报错 ) 28 29 a.endswith("x") #以判断x结尾 30 a.startswith("x",start=None, end=None)#判断以x开头,默认是找整体,也可单独指定判断位置 31 a.isalnum() #判断字符串中包含数字或字符 32 a.isalpha()#判断是否是字符 33 a.isdeciml() #判断是否是数字 (10进制数字) 34 a.isdigit()#判断是否是数字,支持特殊形式 35 a.isdentifier() #判断字母、数字、下划线 36 a.islower()#判断是否小写 37 a.isupper()#判断是否是大写 38 a.isnumeric()#判断是否是数字 支持特殊字符(中文) 39 a.isprintable() #判断是否包含不可显示的字符如:\t \n 40 a.isspace() #判断是否全部 是空格 41 a.istitle() #判断是否是标题 42 43 a.replace("xx","oo") #xx替换oo 44 a.join(xxx) #字符串拼接,a作为拼接符,重新拼接xxx (" ".join(xx) "xx".join(dd)) 45 a.format(name="xxxx") #替换name 46 a.format_map 47 48 a.encode() #编码 str转换bytes 49 a.decode() #解码 获得字符串类型对象
1.6字符串转义
字符前面加上 \ ,字符就不再表示字符本身的意思,表示ASCII码中 不能显示字符,常见有下:
\n 换行
\t 水平制表符
\b 退格
\r 回车,当前位置移到本行开头
\\ 代表反斜杠 \
\’ 代表一个单引号,同样的 “ 等符号也可以这么输出
\0 代表一个空字符
\a 系统提示音
在python中如果要去掉字符串的转义,只需要在字符串前面加上 r
r'abc\tabc'
1.7字符串编码
1 my_str=r'东西' 2 a=my_str.encode('utf-8') 转成2进制数据 3 b=a.decode('utf-8') 2进制转成字符串
1.7字符串拼接
1.使用 +
str1 + str2 + str3
2.格式化字符串
' %s %s %s ' %(str1,str2,str3)
3.使用join
’字符’.join([str1, str2, str3])
4.使用 format
' {} {} {} '.format(obj1,obj2,obj3)
' {0} {1} {2} '.format(obj1,obj2,obj3)
' {1} {0} {2} '.format(obj1,obj2,obj3)
' {n0} {n1} {n2} '.format(n1=obj1,n0=obj2,n2=obj3)
1 my_str='南北老师hello我是杜育非' 2 a=my_str[0:4] 3 b=my_str[4:9] 4 c=my_str[9:] 5 print(b+','+a+','+c+'.') 6 str_1='%s,%s,%s,'%(b,a,c) 7 print(str_1) 8 str_2=(','.join([b,a,c]))+'.' 9 print(str_2) 10 str_3='{},{},{}.' 11 print(str_3.format(b,a,c))
1.8字符串格式化
1.8.1 . %s %d %f 等等
-
了解:
%d %数字 %f %浮点数 %c %ASCII字符 %o %8进制 %x %16进制 %e %科学计数法
' %-6.3f ' % 10.3 左对齐 ' %+6.3f' % 10.3 显示正 ' %5s ' % 'ab' 格式化长度 可用来对齐
-
掌握:
print(‘%s’ %’123’) 字符串拼接 print(‘%r’ %’123’) 原始话输出
1.8.2 .format
1 '{:.2f}'.format(12.333) #保留小数点后两位 2 '{a:.2f}'.format(a=12.333) 3 4 '{:.2%}'.format(0.333) #百分比格式 5 6 '{:x}'.format(20) #转换成十六进制 7 8 '{:o}'.format(20) #转换成八进制 9 #进制转换的时候用{0:进制} 10 ' {a:<10}’.format(a=12.3,b=13.44) #左对齐,长度为10 11 ' {a:0<10}'.format(a=12.3,b=13.44) #数字补x (填充右边, 宽度为4) 12 ' {a:0>10}’.format(a=12.3,b=13.44) #右对齐... 13 ' {a:0^10}'.format(a=12.3,b=13.44) #两边对齐... 14 15 '{{ hello {0} }}'.format('python’) #转义{和}符号 16 17 ' name='a du ,data='18' 18 print(f'hello,{name},i am {data}') '
1.9 深浅复制
1.浅复制
1 a=[1,2,3,4] 2 b=a.copy 3 a[0]=100 4 5 print(a) 6 print(b) 7 8 print(id(a)) 9 print(id(b))
2.深复制
1 import copy 2 my_list=[1,2,[3,4]] 3 a=my_list 4 b=copy.deepcopy(my_list) 5 my_list[2][0]=100 6 print(my_list) 7 print(a) 8 print(b) 9 print(id(my_list)) 10 print(id(a)) 11 print(id(b)) 12
3. 数据类型总结:
3.1、数字:不可变,直接访问
3.2、字符串:不可变,顺序访问
3.3、列表:可变、有序、顺序访问
3.4、字典:可变、无序、key值访问
3.5、元组:不可变、有序、顺序访问
3.6、布尔值:不可变
3.7、集合:无序、不重复