1.数字
int (整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
注意:
·在python3中,不管数字有多大 都是int
·在python2中,数字过大之后为 long ,长整型
--强制类型转换,将字符转为数字
a = '123'
print(type(a),a) # str
b = int(a)
print(type(b),b) # int
--二进制:
num = '0011'
v = int(num,base = 2) # 2进制转10进制
print(v) # 3
--十六进制:
num = 'a'
v = int (num,base = 16) # 16进制转10进制
print(v) # 10
--bit_lenght
#当前数字的二进制,至少用n位表示
2.字符串(引号)
string = "name"
string = 'name'
string = '''name'''
string = """name""" 以上都是字符串
赋值 name = "hello world"
加法 name1 = "小"
name2 = "明"
name3 = name1 + name2
乘法:
name = "小明"
name1 = name * 10 #结果 10个小明
字符串常用功能: 移除空白、分割、长度、索引、切片。
【1】方法:
rapitalize() #首字母大写
casefold() #所有变小写,很多未知的字符都会变成相应的小写
lower() #大写字母变小写
islower() #判断是否是小写
isupper() #小写换大写
upper() #判断是否是大写
center(20,'*') #设置宽度,并将内容居中; 20:总长度,*填充(一个字符,可有可无)
ljust(20,'*') #字符放左边
rjust(20,'*') #字符放右边
count() #在字符串中寻找,子序列的个数, 2、3 参数是,起始和结束位置。(左闭右开区间)
endwith() #是否以参数结尾
startwith() #是否以参数开头
find() #从开始往后找,找到第一个获取其位置。 2、3 参数是,起始和结束位置。(左闭右开区间),未找到返回-1
format() #格式化,将字符串中(花括号)内容替换。
eg:
test = 'i am {name}' v = test.format(name = 'Liang')
#按顺序替换
test = 'i am {0},age is {}' v = test.format('Liang',19)
format_map()
test = 'i am {name}' print(test) #i am name v = test.format_map({'name': 'apple'}) #与format 书写类型不同,但功能相同 print(v) #i am apple
index() #找到返回索引,但是未找到会报错,建议用find
test = 'i am superman' v = test.index(am) print(v) # 2
isalnum() #字符串中,是否只包含 字母和数字。 返回值 bool
test = '123aaa' v = test.isalnum() print(v) #True
isalpha() #是否是字母,汉字
isdecimal() #是否是数字,十进制
isdigit() #是否是数字
isnumeric() #是否是数字
isprintable() #是否存在不可显示的字符 eg: \t 制表符 \n换行
issapce() #是否全部是空格
istitle() #是否是标题格式(首字母大写)
title() #转换成标题的样式
expandtabs() #断句 20。
s = 'username\temail\tpassword\nMr.liang\tliang@163.com\t123\nMr.liang\tliang@163.com\t123' print(s.expandtabs(20))
结果:
username email password
Mr.liang liang@163.com 123
Mr.liang liang@163.com 123
swapcasse() #大小写转换
#字母,数学,下划线:标识符, def class
a = 'def' v = a.isidentifier() print(v) #True
lstrip() #无参,去除左边空白,\t、\n 指定内容也可以去掉,下同
rstrip() #去除右边空白,\t、\n
strip() #去除左右空白,\t、\n
maketrans()
translate() #组合使用,替换。
v = 'adsjifoaifja' m = str.maketrans('aeiou','12345') new_v = v.translate(m) print(new_v) #1dsj3f413fj1
replace() #替换
test = 'hellohellohello' v = test.replace('ll','xx',2) 把前两个ll 替换成xx print(v) #hexxohexxohello
分割
partition()
rpartition()
split()
rsplit()
splitlines() #根据换行分割 参数 : true,false 是否保留换行。
join() #将字符串中的每一个元素按照指定的分隔符进行拼接
test = 'hello' v = ' '.join(test) print(v) #h e l l o常用:
join, split , find , strip ,upper , lower ,replace、len 、for 、索引、切片
【2】取字符: #索引下标
切片
test = 'hello' v= test[0] print(v) # h v1 = test[0:2] print(v1) # he
#python3 : len获取当前字符串中由几个字符组成
test = '你好' v = len(v) print(v) #3
注:1.在python2中,一个汉字三个字符。 此结果为 6
2.字符串在修改或者拼接时,会在内容里创建一个新的字符串,占用另一个块内存。
(3)布尔 True 真 ; False 假
空字符串为假 “”:假 ; “
3.列表 有序的可以被修改
创建:
name_list = ['小明',19] or name_list = list(['小明',19])
1.列表可以嵌套。
2.列表中的元素:数字、字符串、列表、布尔值.....所有的都能当进去。
3.基本操作:索引、切片、追加、删除、长度、循环、包含。
(1)索引取值: name_list[1] # 小明
(2)切片取值:name_list[0:2] # ['小明',19] #结果也是列表
(3)循环:
name_list = ['小明',19] for i in name_list: print(i)
(4)切片
修改
name_list = ['小明',19] name_list[1:2] = [20]
删除
name_list = ['小明',19] del name_list[0:1]
(5)索引
修改
name_list = ['小明',19] name_list[1] = 20
删除
name_list = ['小明',19] del name_list[1]
(6)in操作
name_list = ['小明',19] v = 19 in name_list #True
(7)嵌套
name_list = ['小明',19] name_list[0][1] #明
(8)字符串转换列表, list('string') 内部使用for循环
【1】.有数字、字符串
n = ['123',4567,89] s = '' for i in n: s += str(i) print(s)
【2】.直接字符串join方法,只有字符串
n = ['123','456'] v = ''.join(n) print(v)
4.方法(11个)
append() #整个追加到最后
n = [11,22,33] n.append(44)
clear() #清空
n = [11,22,33] n.clear()
copy() #拷贝
n = [11,22,33] v = n.copy()
count() #计算元素出现的次数
n = [11,22,33] v = v.count(22)
extend() #扩展列表,把每个元素循环加入列表
n = [11,22,33] li.extend(44,55)
index() #根据值获取当前索引位置(左边优先)
n = [11,22,33] v = n.index(22)
insert() #指定索引位置插入,参数1,插入位置;参数2,插入内容。
n = [11,22,33] li.insert(0,99)
pop() #删除某个值(1.指定索引;2默认最后的值),并获取删除的值
n = [11,22,33] v = n.pop()
remove() #删除指定值,左边优先
n = [11,22,33] n.remove(11)
PS: pop, remove, del, clear
reverse() #反转
n = [11,22,33] n.reverse()
sort()
n = [11,22,44,33] n.sort() #小到大 n.sort(reverse=Ture) #大到小
4.元组
1.创建:
n = (11,22,33) 或 n = tuple((11,22,33))
2.基本操作:索引、切片、循环、长度、包含
(2)索引
tu = (11,22,33,44) v = tu[0]
切片
tu = (11,22,33,44) v = tu[0:2]
循环(可迭代对象)
tu = (11,22,33,44) for i in tu: print(i)
3.方法
count() #获取元组中的指定元素出现的次数。
index() #获取元素中的指定元素的所有位置。
注:元组的一级元素不可被修改、删除、增加
一般写元组的时候,在最后括号之前加一个逗号
字符串、元组、列表三者之间可以相互转换
5.字典
(1)创建:
n = {'name': 'mr.liang','age': 19} #两个键值对一个key,一个value 或 n = dict({'name': 'mr.liang','age': 19})
(2)value可以是任何值;列表、字段不能作为字典的key
(3)字典是无序的
(4)常用操作:索引、新增、删除、(键,值,键值对)、循环、长度
索引
info = {'k1':11,'k2':22,'k3':33} v = info['k1']
删除
info = {'k1':11,'k2':22,'k3':33} del info['k1']
循环
info = {'k1':11,'k2':22,'k3':33} for i in info: print(i,info[i])
info = {'k1':11,'k2':22,'k3':33} for k,v in info.items(): print(k,v)
(5)方法
clear()
copy()
fromkeys() #根据序列,创建字段,并指定统一的值
dict = {'k1': 1} v = dict.formkeys(['k2'],22) print(v) #{'k1': 22}
get() #根据key取值,key不存在时,取第二个参数。
d = {'k1': 22} d.get('k1',11)
pop() # 删除并获取值。 当key不存在时,返回第二个参数。
d = {'k1':1,'k2':2} v = d.pop('k1',0)
setdefault() #设置值,已存在,不设置,获取当前key对应的值;不存在,则设置,获取当前对应key的值
d = {'k1':1} v = d.setdefault('k2',1)
update() #存在的更新,不存在添加。
d = {'k1':1} d.update({'k1':11,'k2':22})
或 d.update(k1=11,k2=22)
重要:
keys()、values()、item()、get()、update()
其它
1. for 循环
用户可按照顺序迭代对象中的内容
break、continue
test = '妹子有种冲我来' for i in test: print(i)
2. range() 创建连续数字
range(1,2,3) 1:起始位置 ,2:结束位置, 3:步长
注意:在python2中, range(100) 会创建内存,打印内容为0-99
在python2中,xrange(),与在python3中的效果一样,在for循环里一个一个创建
在python3中,range(100)则不会创建内存,打印内容为range(0,100),只有在for循环里才会创建内存。
for i in range(10): print(i) #打印0-9
3. enumerate
给迭代对象添加序号
test = '放着我来' for i,v in enumerate(test): print(i,v) #输出结果一个字一个字输出
总结:
一、数字
1.int()
二、字符串
repalce、find、join、strip、startwith、split、upper、lower、format
tempalte = 'i am {name}, age : {age}'
v = tempalte.format(name = 'Liang', age = 19)
#v = tempalte.format(**{'name': 'Liang', 'age' : 19})
三、列表
append、extend、insert
索引、切片、循环
四、元组
索引、切片、循环
一级元素不能被修改、删除、增加
五、字典
get、update、keys、values、items、
循环、索引
字典可以使用in操作,
六、布尔值
None、‘’、()、[]、{} 0 - -----> False
可变与不可变
1.可变:列表、字典
2.不可变:字符串、数字、元组
访问顺序:
1.顺序访问:字符串、列表、元组
2.映射:字典
存放元素个数:
容器类型:列表、元组、字典
原子:数字、字符串。