1、数字类型
整型
用途:存qq号,手机号,不带字母的身份证号...
进制转换:
二进制转十进制:10 --> 1*(2**1) + 0*(2**0) 2
八进制转十进制: 235 --> 2*(8**2) + 3*(8**1) + 5*(8**0)
十六进制转十进制:217 --> 2*(16**2) + 1*(16**1) + 7*(16**0)
int可以可以传一个参数,表示的是第一个参数到底是什么类型的,然后转成十进制的。
十进制转二进制: print(bin(12)) --> 0b1100 0b表示后面的数字是二进制数
十进制转八进制: print(oct(12)) --> 0o14 0o表示后面的数字是八进制数 14 >>> 1*(8**1) + 4*(8**0))
十进制转十六进制: print(hex(12)) --> 0xc 0x表示后面的数字是十六进制数
总结:
存一个值、不可变(可变:只改变的情况下,id不变,说明你改的是原值 不可变:只改变的情况下id一定变)、有序:但凡有索引的数据都是有序的
浮点型
用途:薪资、身高、体重
2、字符类型及内置方法
用途:描述性
定义方式:单引号、双引号、三引号 -->s = 'hello baby' # str('hello baby')
常用操作及内置方法:
1、按索引取值(正向取+反向取) :只能取
# s = 'hello big baby~'
# print(s[0])
2、切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串
左边的固定就是头,右边固定就是位 没有说按数字来分头尾
s = 'hello world i am a baby'
print(s[0:5]) #hello
print(s[0:10:1]) #hello 步长不写默认是1
print(s[0:10:2]) #步长表示隔几个取一个#了解负数取值
print(s[-1])print(s[0:5:-2]) #切片取值默认是从左往右的
print(s[5:0:-1]) #切片取值默认是从左往右的
print(s[-1:-10:-1])
3、长度len:统计的是字符串中字符的个数
s1 = ' '
print(len(s1))#4、成员运算in和not in: 判断一个子字符串是否存在于一个大的字符串中
print('wiliam' in 'william is dsb and william is sb')print('g' in 'john is dsb and john is sb')print('john' not in 'john is dsb and john is sb')
5、去掉字符串左右两边的字符strip,不管中间的
username = input('>>>:').strip()if username == 'william':print('good job')#strip()默认去除字符串首尾的空格#使用内置的方法统一采用 句点符(.)
name1 = 'william'name2= 'william'.strip()print(name1 ==name2)
name3= '$$$$$will$iam$$$$'
print(name3.strip('$'))#了解即可
name4 = '% ¥#william&*)'
print(name4.strip('% ¥#)'))#rstrip() lstrip()
name5 = '$$$$william$$$$'
print(name5.lstrip('$')) #left左边
print(name5.rstrip('$')) #right右边
6、切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值
data = 'williamn|123| handsome'
print(data.split('|'))
username,password,info= data.split('|')print(username,password,info)#强调:split切分出来的数据类型是一个列表
print(data.split('o')) #切割的顺序其实从左往右的
print(data.split('o',1)) #切割的顺序其实从左往右的
print(data.rsplit('o',1)) #切割的顺序其实从左往右的#如果不指定那么split和rsplit效果是一样
7、循环
for i indata:print(i)
需要掌握的:
2、lower,upper
s = 'WiLL1Iam'res=s.lower()print(res)print(s)print(s.upper())print(s)#调用字符串的方法并没有改变字符串本身
3、startswith,endswith
s1 = 'johnis dsb'
print(s1.startswith('e')) #判断字符串是否以什么什么开头
print(s1.endswith('n')) #判断字符串是否以什么什么结尾
4、format的三种玩法(python推荐使用format做格式化输出)
#第一种 按位置占位 跟%s原理一致
str1 = 'my name is {} my age is {}'.format('william',18)
str1= 'my name is {} my age is {}'.format(18,'william',)print(str1)#第二种 按索引占位
str1 = 'my {1} name is {0} my {0} age is {0}'.format('william',18)print(str1)#第三种 指名道姓占位(关键字传参)
str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='wililam',age=18)print(str1)
6、join
data = 'william|123|william'res_list= data.split('|')print(res_list)#res_str = '$'.join(res_list) #将容器类型中的多个元素通过指定字符拼接成一个字符串
print(res_str)
l= ['1','a','b']
res= '|'.join(l)print(res)
7、replace
str = 'john is dsb and john is sb he has a BENZ'res= str.replace('william','john',1)print(res)print(str)
8、isdigit # 判断字符串中包含的是否为纯数字
whileTrue:
age= input('>>>:')ifage.isdigit():
age=int(age)if age > 28:print('阿姨好')else:print('你他妈的能不能好好输')
需要了解的内置方法:
1、find,rfind,index,rindex,count
s = 'williamis dsb o and william is sb'
print(s.find('dsb')) #返回的是d字符所在的索引值
print(s.find('xxx')) #找不到的时候不报错返回的是-1
print(s.find('i',0,3)) #还可以通过索引来限制查找范围
print(s.index('o')) #返回所传字符所在的索引值
print(s.index('i',0,3)) #返回所传字符所在的索引值
print(s.count('n')) #统计字符出现的次数
2、center,ljust,rjust,zfill
s9 = 'william'
print(s9.center(12,'*'))print(s9.ljust(40,'$'))print(s9.rjust(40,'$'))print(s9.rjust(40,' '))print(s9.zfill(40))
3、expandtabs
s10 = 'a\tbc'
print(s10.expandtabs(100))
4、captalize,swapcase,title
s12 = 'hElLo WoRLD wililam'
print(s12.capitalize()) #Hello world 首字母大写
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())
总结:
只能存一个值、有序(但凡有索引的数据都是有序的)、不可变类型
3、列表类型及内置方法
定义:[]内可以有多个任意类型的值,逗号分隔
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]print(l[0:3])
3、添加
1.尾部添加一个66
l.append(66) #注意append值能将被添加的数据当作列表的一个元素
print(l)#2.任意位置添加元素
l.insert(2,96) #通过索引在任意位置添加元素
print(l) #注意insert值能将被添加的数据当作列表的一个元素
#3.添加容器类型数据
l.append(l1)
l.insert(-1,l1)
l.extend(l1)#内部原理for循环l1一个个追加到列表的尾部
l.extend([1,])print(l)
4、删除
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)