数据类型及内置方法
一、整型(int)
用途:有QQ号、手机号、不需要字母的身份证
1.定义方式:
age = 18 #age = int(18)
int (‘10’)#只能转到纯数字的字符串,小数点都不行。
2.进制转换:
十进制转二进制:
print(bin(12)) :0b1100
十进制转八进制:
print(oct(12)):0o14
十进制转十六进制:
prInt(hex(12)):0xc
各种进制转回十进制:
print(int('1100',2))
print(int('1100',8))
print(int('1100',16))
3.该类型总结:
1.存一个值
2.有序(但凡有索引的数据都为有序)
3.它是不可变类型(在值改变的情况下,id也跟着改变,即为不可变类型)
二、浮点型
作用:薪资、身高、体重
salary = 1.1# float(1.1)
res = float('1.11')
print(type(res))
<class 'float'>
三、字符串
用途:描述性
定义方式:‘’ ,“”,''' '''
s = ‘hello baby’
s1 = str([1,2,3,4])
print(type(s1)
<class 'str'>
无论什么类型,都能变成字符串。
1.按索引取值
s = 'hello big baby'
print(s[0])
h
切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串。
print(s[0:5]) >>>hello
print(s[0:10:1])>>>hello big #步长不写默认是1
print(s[0:10:2])>>>hlobg #步长表示隔几个取一个
负取值:prInt(s[0:5:-1])>>>不输出 原因:负取值是从右往左取值
print(s[5:0:-2])>>>le
print(s[-1:-10:-1])>>>ybab gib
2.长度len:统计字符串中,字符的个数。
3.成员运算in和not in:判断一个子字符串是否存在于一个大的字符串中
4.去掉字符串左右两边的字符strip,不管中间的
username = input('>>>:')
if username == 'zzj':
print('goodjob')
但是如果,在输入时不小心键入了空格,那么就不会有运行结果了。
所以用到该方法:
name1 = 'zzj'
name2 = ' zzj '.strip()
print(name1 == name2)>>>True
name3 = '$$$$$$zzj$$$$$$'
print(name3.strip('$'))
ps:只能取首尾!
4.1 rstrip(): lstrip():
name = '$$$$$zzj$$$$$$'
print(name.lsptrip('$'))>>>zzj$$$$$$
print(name.rsptrip('$'))>>>$$$$$zzj
5.切分split:针对按照某种分割符组织的字符串,可以用split将其切分成列表,进而进行取值。顺序默认从左往右!
data = 'jason|123|handsome'
print(data,split('|'))
强调:split切分出来的数据类型是一个列表
6.循环
msg='hello'
for item in msg:
print(item)>>>h e l l o
7.lower, upper
s = 'JaSoN'
print(s.upper())>>>JASON
print(s.upper())>>>jason
调用字符串的方法并没有改变字符串本身
8.startswith,endswith
s1 = 'egon is dsb'
print(s1.startswith('e')) >>>True # 判断字符串是否以什么什么开头
print(s1.endswith('n')) >>>Flase# 判断字符串是否以什么什么结尾
9.format的三种玩法(python推荐使用format做格式化输出)
第一种 按位置占位 跟%s原理一致
str1 = 'my name is {} my age is {}'.format('jason',18)
str1 = 'my name is {} my age is {}'.format(18,'jason',)
print(str1)
第二种 按索引占位
str1 = 'my {1} name is {0} my {0} age is {0}'.format('egon',18)
print(str1)
第三种 指名道姓占位(关键字传参)
str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='jason',age=18)
print(str1)
10.replace
str = 'egon is dsb and egon is sb he has a BENZ'
res = str.replace('egon','kevin',1)
print(res)>>>kevin is dsb and egon is sb he has a BENZ
print(str)>>>egon is dsb and egon is sb he has a BENZ #不改变原变量
11.isdigit :断字符串中包含的是否为纯数字
while True:
age = input('>>>:')
if age.isdigit():
age = int(age)
if age > 28:
print('阿姨好')
else:
print('请你给我好好输!')
12.find,rfind,index,rindex,count
s = 'kevin is dsb o and kevin is sb'
print(s.find('dsb')) >>>9 # 返回的是d字符所在的索引值
print(s.find('xxx'))>>>-1 # 找不到的时候不报错返回的是-1
print(s.find('i',0,3)) >>>-1# 还可以通过索引来限制查找范围
print(s.index('o')) >>>13 # 返回所传字符所在的索引值
print(s.index('i',0,3)) >>>找不到直接报错 # 返回所传字符所在的索引值
print(s.count('n')) >>>3 # 统计字符出现的次数
13.center,ljust,rjust,zfill
s9 = 'jason'
print(s9.center(12,'*'))>>>***jason****
print(s9.ljust(40,'$'))>>>jason$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
print(s9.rjust(40,'$'))>>>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$jason
print(s9.rjust(40,' '))>>> jason
print(s9.zfill(40))>>>00000000000000000000000000000000000jason
14.expandtabs
s10 = 'a\tbc'
print(s10.expandtabs(100))>>> a bc
15.captalize,swapcase,title
s12 = 'hElLo WoRLD sH10'
print(s12.capitalize()) # Hello world 首字母大写
print(s12.swapcase()) # 大小写互换
print(s12.title()) # 每个单词的首字母大小
16.is数字系列
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='壹' #中文数字
num4='Ⅳ' #罗马数字
# ''.isnumeric(): unicode,中文数字,罗马数字 只要是表示数字都识别
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())
# ''.isdecimal(): unicode 只识别普通的阿拉伯数字
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())
# ''.isdigit() :bytes,unicode 通常情况下使用isdigit就已经满足需求了
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
四、列表类型
作用:多个装备,多个爱好,多门课程。
定义:[]内可以有多个任意类型的值,逗号分隔
l=list('abc')
l1=list({'name':'jason','password':'123'})
print(l1)
list内部原理就是for循环取值 然后一个个塞到列表中去
1.按索引存取值(正向存取+反向存取):即可存也可以取
l = [1,2,3,4]
print(l[0:4:1])
print(l[0::])
print(l[5::-1])
print(id(l))
l[0] = 69
print(id(l))
print(l)
2.切片(顾头不顾尾,步长)
l = [11,22,33,44,55]
l1 = [99,88,77,66]
2.1尾部添加一个66
l.append(66) # 注意append值能将被添加的数据当作列表的一个元素
print(l)>>>[11, 22, 33, 44, 55, 66]
2.2任意位置添加元素
l.insert(2,96) # 通过索引在任意位置添加元素
print(l) >>>[11, 22, 96, 33, 44, 55, 66] # insert值能将被添加的数据当作列表的一个元素
2.3.添加容器类型数据
l.append(l1)
l.insert(-1,l1)
l.extend(l1) # 内部原理for循环l1一个个追加到列表的尾部
l.extend([1,])
print(l)
2.4.长度
print(len(l))>>>5
2.5.成员运算in和not in
print( 444 in l)>>>Flase
2.6.删除
del l[2] # del适用于所有的删除操作
print(l)
2.7 res1 = l.pop() 尾部弹出
res2 = l.pop()
res3 = l.pop()
print(res1,res2,res3)>>>55 44 33