1.整型(int)
1.1 用途:存QQ号、手机号、身份证号码等整数字串
1.2定义方式:
age= 18 # age=int(18)int括号内只能放纯数字,连小数点都不行
例如:
int('fsfsdfa')#错误
int('1.2')#错误
1.3进制的转换
1.3.1其他进制转十进制(int)方法
print(int('1000',2))意思是二进制的1000转成十进制
print(int('1000',8))意思是8进制的1000转成十进制
print(int('1000),16))意思是16进制的1000转成十进制
1.3.2十进制转其他进制
print(bin(12))bin代表转成二进制
print(oct(12))oct代表转成8进制
print(hex(12))hex代表转成16进制
1.4整型的‘可变与不可变类型’
可变类型:ID号不变的情况下改变值
不可变类型:值改变,ID号就改变
x=20
print(id(x))#504131648
x=21
prnt(id(x))#504131680
2.浮点型
2.1作用:薪资、身高、体重
2.2定义:height=178.1# height=float(178.1)
3.字符串
3.1用途:描述性
3.2定义方式:‘’,‘’‘’,‘’‘’‘’
s='hello world' #s=str('hello world')
列表和字典都可以转成字符串
s1=str([1,2,3,4])
print(type(s1))
s2=str({'name':'wuxi','pwd':123})
print(type(s2))
3.3按索引取值(分为正向取+反向取):由于字符串是不可变类型,因此只能取,不能修改
a='wuxi is handsome'
print(a[0])
3.4切片(批量取值,一直取多个值):
定义在[]内,填入索引值,表示从哪个索引值开始到哪个索引值结束。需要主要【】内顾头不顾尾
在一个大的字符串中取出一段小字符串。
而‘按照索引取值’是一个个字符的取
a='wuxi is handsome'
Print(a[0:4])#按照索引次序,取出wuxi。
1.4.1切片可以指定取值的步长
print(a[1:5:2])最后一个数字2,代表隔一个取一个。
1.4.2切片可以倒着取值(默认是从左往右)了解知识点
print(a[-1])#取最后一个值
print(a[0:5:-2])#错误,由于默认是从往右取,如果倒着取,-2之前的索引也应该改变。正确如下
print(a[-1:-10:-2])
3.5长度len:
用来统计字符串的字符长度
a='wuxi looks very good'
print(len(a))
3.6成员运算 in 和 not in :
用来判断的。判断一个子字符是否存在与另一个字符串中。得到的结果为True或False
a1='wuxi looks very handsome'
print(‘wuxi’ in a1)#True
print(‘nice’ not in a1)#False
3.7去掉字符串首尾两边的字符strip(默认取空格,可以指定去除内容),不管字符中间的空格
name=' shilingling '#.strip()
3.7.1若指定去除的内容,则去除空格的效果丢失,除非另外指定
name2=' fff shilingling '#.strip(' f')空格逗号f,则只剩下shilingling
name3='*****shilingling******'#.strip('*')
name4='**+**/**shilingling ****_**'#.strip('*+/-')
3.7.2用户交互
name=input(:>>>).strip()
print(name)
3.8切分split:
针对按照某种分隔符组织的字符串,可以用split将分隔符切除,并输出为列表,最终也可以方便索引或者解压缩取值
案例1(结果保存为列表,不涉及取值):
info='wuxi:178:23:75::/root/bin/bash'
res=info.split(':')#去除:分隔符
print(res)#结果['wuxi', '178', '23', '75', '', '/root/bin/bash']
案例2(解压缩取值):
cmd='surfing|a.txt|334343'
cmd_name,filename,filesize=cmd.split('|')
3.9.循环,今日未讲
4.其他关于字符串的需要掌握的内置方法
4.1 .lower(),.upper()全部小写或全部大写
s='My Name is Shilingling'
res=s.upper()
print(res)#MY NAME IS SHILINGLING
print(s)#My Name is Shilingling
实验得知,调用字符串的方法(即.后面的方法)并不会改变字符串本身
4.2startswith,endswith
用于判断字符串是否以什么开头或结尾
info='shilingling is beautiful'
print(info.startswith('shilingling'))
4.3format的三种用法(格式化输入的一种形式,pyhton推荐使用该语法)
4.3.1按位置占位,与%s相同
info1='my name is {} my age is {}'.format('wuxi',18)
print(info1)#my name is wuxi my age is 18
4.3.2按照索引值占位与后方的传值对应
info3='my name is {1} my age is {0}'.format('wuxi',18)
print(info3)#my name is 18 my age is wuxi
4.3.3关键字传参。好比字典key:value
info4='my name is {name} my age is {age}'.format(name='wuxi',age=18)
4.4split,replit
msg='get|a.txt|333331231'
print(msg.split('|',1))
print(msg.rsplit('|',1))
['get', 'a.txt|333331231']
['get|a.txt', '333331231']
4.5join
将容器类型中的多个元素通过指定字符拼接成一个字符串
data = 'jason|123|handsome'
res_list = data.split('|')
print(res_list)#['jason', '123', 'handsome']
res_str = '$'.join(res_list) # 将容器类型中的多个元素通过指定字符拼接成一个字符串
print(res_str)#jason$123$handsome
l = ['1','a','b']
res = '|'.join(l)
print(res)#1|a|b
4.6 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)
4.7isdigit判断字符串包含的是否为纯数字
while True:
age = input('>>>:')
if age.isdigit():
age = int(age)
if age > 38:
print('阿姨好')
else:
print('好好输')
5.需要了解的内置方法:
5.1find,rfind,index,rindex,count
s='msl is dsb and lsr is sb'
print(s.find('dsb'))#返回的是d字符所在的索引值
print(s.find('sss'))#找不到的時候返回-1
print(s.find('i',0,3))#用索引來限制查找的quyu
print(s.index('o))#返回所传字符所在的索引值
print(s.index('i',0,3))#返回所传字符的索引值
print(s.count('n'))#统计字符出现的次数
5.2center,ljust,rjust,zfill
s=‘wuxi’
print(s9.center(12,'*'))
print(s9.ljust(40,'$'))
print(s9.rjust(40,'$'))
print(s9.rjust(40,' '))
print(s9.zfill(40))
5.3expandtabs
s10 = 'a\tbc'
print(s10.expandtabs(100))
5.4captalize,swapcase,title
s12 = 'hElLo WoRLD sH10'
print(s12.capitalize()) # Hello world 首字母大写
print(s12.swapcase()) # 大小写互换
print(s12.title()) # 每个单词的首字母大小
5.5
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())
6.列表类型的作用:多个装备,多个爱好,多门课程,多个女朋友等
定义:[]内可以有多个任意类型的值,逗号分隔
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] #本质my_girl_friends=list([...])
或
l=list('abc')
l1=list({'name':'jason','password':'123'})
print(l1)
list内部原理就是for循环取值 然后一个个塞到列表中去
6.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)
6.2切片(顾头不顾尾,步长)
l=['egon','lxx','yxx',444,555,66666]
print(l[0:5])
print(l[0:5:2])
print(l[::-1])#
6.3长度
l=['egon','lxx','yxx',444,555,66666,[1,2,3]]
print(len(l))
6.4成员运算in和not in
l=['egon','lxx','yxx',444,555,66666,[1,2,3]]
print('lxx' in l)
print(444 in l)
6.5追加
l=['egon','lxx','yxx']
l.append(44444)
l.append(55555)
print(l)
6.6往指定索引前插入值
l=['egon','lxx','yxx']
l.insert(0,11111)
print(l)
l.insert(2,2222222)
print(l)
# 一次性添加多个元素
l = ['jason','nick']
l.extend(['tank','sean'])
6.7删除
# 单纯的删除值:
# 方式1:
del l[1] # 通用的
print(l)
# 方式2:
res=l.remove('lxx') # 指定要删除的值,返回是None
print(l,res)
# 从列表中拿走一个值
res=l.pop(-1) # 按照索引删除值(默认是从末尾删除),返回删除的那个值
print(l,res)