今日内容
数据类型
(1)整型(INT)
‘’‘int只能转纯数字的字符串,小数点都不行’‘’
存一个值且有序:但凡有索引的数据都是有序的。
进制转换
10进制转二进制:print(bin(12)) 0b1100 0b表示后面的数字时二进制数
10进制转八进制:print(oct(12)) 0o14 0o表示后面的数字时八进制数
10进制转16进制:print(hex(12)) 0xc 0x表示后面的数字是16进制
print(int(‘1100’,2)) ’‘’转二进制‘’‘
print(int(‘14’,8)) ’‘’转8进制’‘’
print(int(‘c’,16)) ‘’‘转16进制’‘’
可变类型与不可变类型
可变类型:只改变的情况下,id不变,说明你改的是原值。
不可变类型:值改变的情况下,id一定改变。
x = 10
print(id(x))
x= 11
print(id(x))
(2)浮点型
作用例子:薪资 身高 体重
salary = 1.1 float(1.1)
res= float(‘1.11’)print(type(res)) ‘’‘float’‘’
(3)字符串型
存一个值;不可变型;
1、用途:描述性2、定义方式:'',"",""""""
s = 'hello baby' #str('hello baby')s1= str([1,2,3,4])print(type(s1))
s2= str({'name':'jason','password':123})print(type(s2))
1.按索引取值(正向取+反向取):只能取
s =‘hello big baby’print(s[0]) ‘’‘h’‘’
按索引取值
2.切片操作(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串,左边是头,右边是尾,并且不是按数字来分头尾的
s =‘hello big baby’print(s[0:5]) ‘’‘hello’‘’print(s[0:10:1]) ‘’‘hello big 步长默认是1’‘’print(s[0:10:2]) ‘’‘步长表示隔几个取一个‘’‘
切片操作
3.了解复数取值
s =‘hello big baby’print(s[-1])
‘’‘无’‘’print(s[0:5:-2])
‘’‘-2是步长,’无‘ 切片取值默认是从左往右的’‘’print(s[5:0:-1])
‘’‘-1是步长, ’ olle‘ 此切片取值为从右往左’‘’print(s[-1:-10:-1])
‘’‘ybab gib ’‘’
复数取值
4.长度len:统计的是字符串中字符的个数
s1 =‘ ’print(len(s1))
''' 1 '''
5.成员运算in和not in:判断一个子字符串是否存在于一个大的字符串中
print(‘zkj’ in ‘zkj is wd and zkj isgodman’)print(‘k’ in ‘zkj is wd and zkj is godman')
print(‘jason’ not in ‘zkj is wd and zkj is godman’)
6.去掉字符串首尾的空格,不管中间的,用 .strip()
username = input('>>>:').strip()if username == 'jason':print('good job')
‘’‘strip()默认去除字符串首尾的空格
rstrip()去除右边的空格;lstrip()去除左边空格
使用内置的方法统一采用 句点符 ( . )
’’‘
name1=‘jason’
name2=‘ jason ’.strip()print(name1 ==name2)
’‘’ ‘jason’==‘ jason ‘ ’‘’
name3=‘$$$$egon$$$$’print(name3.strip(‘$’))
‘’‘ ’egon’ ‘’‘
name4= ‘% $&jason@*)’print(name4.strip(‘% $&@*)’))
’‘’ ‘jason’ ‘’‘
去掉字符串首尾空格,不管中间的,用.strip()
7.切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成成列表,进而进行取值
data = ‘jason|123|handsome’print(data.split(‘ |’))
username,password,info= data.split(‘ |’)print(username,password,info)
'''[ ’jason‘,‘123’,‘handsome’ ]'''
‘’‘强调:split切分出来的数据类型是一个列表’‘’
data = ‘jason|123|handsome’print(data.split( j ))'''split切割的顺序其实是从左往右的'''
print(data.split(‘o’,1))'''[‘jas’,‘n|123|hands’,‘me’]'''
print(data.rsplit(‘o’,1))'''这次是从右往左,依照’0‘切割,不过只切割第一个‘o’'''
print(data.split('o',2))
'''这次是从左往右,依照’0‘切割,不过要切割从左往右数第一个‘o’和 第二个‘o’ ''''''如果不指定,那么split和rsplit效果是一样的'''
8.循环
data = ‘jason |123|handsome’for i indata:print(i)
'''空格也会被打印出来'''
‘’‘需要我们掌握的‘’’
1).strip、lstrip、rstrip
同上
2).lower、upper
s =‘JaS1oN’
res=s.lower()print(res)print(s)print(s.upper())print(s)
'''jas1on,JaS1oN,JAS1ON,JaS1oN'''
‘’‘调用字符串的方法并没有改变字符串本身‘’’
3).startswith,endswith
s1 = ‘egon isdsb’print(s1.stratswith(‘ j ’))'''False'''
print(s1.stratswith(‘e’))'''True'''
'''判断字符串是否以XXX开头'''
print(s1.endswith(‘n’))'''True'''
'''判断字符串是否以XXX结尾'''
startswith,endswith
4.format的三种玩法(python推荐使用format格式化输出)
’‘’第一种 按位置占位‘’‘
str1 = ‘my name is { } my age is { }’ .format(‘jason’,18)
str1= ‘my name is { } my age is { }’ .format(18,‘jason’)print(str1)
'''my nameis jason my age is 18my nameis 18 my age isjason
'''
‘’‘第二种 按索引占位’‘’
str1 = ‘my {1} name is {0} my {0} age is {0}’ .format(‘egon’,18)print(str1)
'''my18 name is egon my egon age is egon'''
‘’‘第三种 指名道姓占位(关键字传参)’‘’
str1 = ’my {name} name is {age} my {name} age is {name}‘ .format(name=‘jason’,age=18)print(str1)
'''my jason nameis 18 my jason age is jason'''
5.split、lsplit、rsplit
上面已经说过了。
6.join(将容器内的多个元素通过指定的字符拼接成一个字符串)
data = ‘jason|123|handsome’
res_list= data.split(‘ |’)print(res_list)
res_str=‘$’.join(res_list)print(res_str)'''[’jason’,‘123’,‘handsome’]
jason$123$handsome'''
7.replace
str = ‘egon is dsb and egon issb he has a BENZ’
res1= str.replace(‘egon’,‘kevin’,1)
res2= str.replace(‘egon’,‘kevin’,2)print(res1)print(res2)print(str)'''kevin is dsb and egon is sb he has a BENZ
kevin is dsb and kevin is sb he has a BENZ
egon is dsb and egon is sb he has a BENZ'''
8.isdigit(判断字符串中包含的是否为纯数字)
whileTrue:
age= input('>>>:')ifage.isdigit():
age=int(age)if age > 28:print('阿姨好')else:print('你他妈的能不能好好输')break
‘’‘需要了解的内置方法’‘’
1.find,rfind,index,rindex,count
s = ‘kevin is dsb and kevin issb’print(s.find(‘dsb’))'''返回的是d字符所在的索引值'''
print(s.find(‘XXX’))'''找不到的时候不报错且返回的是-1'''
print(s.find(‘i’,0,3))'''还可以通过索引来限制查找范围'''s= ‘kevin is dsb 0 and kevin issb’print(s.index(‘o’))'''返回所传字符所在的索引值 13'''
print(s.index(‘and’))'''返回所传字符所在的索引值 15'''
print(s.index(‘i’,0,3))'''顾头不顾尾,在0,1,2中寻找不到则直接报错'''
View Code
s = ‘kevin is dsb 0 and kevin is sb’
print(s.count(‘n’)) ‘’‘统计字符出现的次数‘’’
2.center,ljust,rjust,zfill
s9 =‘jason’print(s9.center(11,‘$’))'''$$$jason$$$'''
print(s9.ljust(11,‘$’))'''jason$$$$$$$$$$$'''
print(s9.rjust(11,‘$’))'''$$$$$$$$$$$jason'''
print(s9.rjust(11,‘ ’))'''jason'''
print(s9.zfill(40))'''00000000.......00000000000jason'''
3.expandtabs
s10 =‘a\tbc’print(s10.expandtabs(100))'''a bc,空格被拓展了
\r\n或者\n、\r 回车换行'''
4.captalize,swapcase,title
s12 =‘hElLo WoRLD sH10’print(s12.capitalize())'''Hello world sh10首字母大写'''
print(s12.swapcase())'''每个单词字母大小写互换'''
print(s12.title())'''每个单词的首字母大小写互换'''
5.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())
is数字系列
(4)列表类型
‘’‘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]'''尾部添加一个66'''l.append(66)'''注意append值能将被添加的数据当作列表的一个元素'''
print(l)'''l = [11,22,33,44,55,66]'''
'''任意位置添加元素'''l.insert(2,96)'''通过索引在任意位置添加元素'''
print(l)'''注意insert值能将被添加的数据当作列表的一个元素'''
'''添加容器类型数据'''
'''l.append(l1)
l.insert(-1,l1)
l.extend(l1) ‘’内部原理for循环l1一个个追加到尾部'''l= [11,22,33,44,55]
l.extend([1,])print(l)'''[11, 22, 33, 44, 55, 1]'''
切片操作
3.长度
print(len(l))
4.成员运算in和not in
print(444 inl)'''True或者False'''
5.往列表中添加元素(很重要)
append
insert
extend '''只能添加列表'''
6.删除
print(l)del l[2]'''del适用于所有数据类型的删除操作'''
print(l)
res1=l.pop()'''尾部弹出'''res2=l.pop()
res3=l.pop()print(res1,res2,res3)
res1=l.pop(0)'''可以指定索引,按照索引弹出元素'''
print(res1)
res= l.remove(33)'''指定要删除的元素的值'''
print(l)print(res)
s=‘haha’print(s)delsprint(s)
删除操作
7.循环
for i inl:print(i)