一般的采用句点表示法即: 变量名后接小数点再接函数()
1.数字类型int()
int只能转纯数字的字符串,小数点不行
进制转换:
# 其他进制转换十进制
print(int('1100', 2)) # int中的第二个参数,用来表示第一个参数的进制,
即2进制转换十进制,将1100这个二进制数转换为10进制
print(int('14', 8)) # 8进制转换十进制
print(int('c', 16)) # 16进制转换十进制
# 10进制转换其他进制,memory三种方法
# 10进制转换二进制
print(bin(12)) # 0b1100 0b表示后面的数字是二进制数,Binary
# 10进制转八进制
print(oct(12)) # 0o14 0o表示后面的数字是八进制数 验证:14 >>> 1*(8**1) + 4*(8**0)) Octal
# 10进制转16进制
print(hex(12)) # 0xc 0x表示后面的数字是十六进制数 Hexadecima
有序与无序
有序:可索引的数据 列表
无序: 字典
# 可变类型与不可变类型
可变类型:值在改变的情况下,id不变,说明你改的是原值
不可变类型:值改变的情况下,id一定改变
浮点型float 含有小数点的数
2.字符串 str()
任何数据类型都可通过str()转换成字符串类型
索引
# 1、按索引取值(正向取+反向取) :只能取
# s = 'hello big baby~'
# print(s[0])
# 2、切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串
# 左边的固定就是头,右边固定就是位 没有说按数字来分头尾
# print(s[0:5]) # hello 顾头不顾尾就是说实际只取到0——4位
# print(s[0:10:1]) # hello 步长不写,默认是1
# print(s[0:10:2]) # 2表示步长,步长表示隔几个取一个
负向索引:
3.长度len()统计字符串中字符的个数
s1 = ' '
print(len(s1)) #空格也表示字符串中的一个字符,所以结果为1
成员运算in和not in: 判断一个子字符串是否存在于一个大的字符串中:
# print('egon' in 'egon is dsb and egon is sb')
# print('g' in 'egon is dsb and egon is sb')
# print('jason' not in 'egon is dsb and egon is sb')
结果为布尔值
4.去掉两边的空白字符strip()
# name1 = 'jason'
# name2 = ' jason '.strip()
# print(name1 == name2)
name3 = '$$$$$eg$on$$$$'
print(name3.strip('$')) # eg$on 去掉两边的$
name4 = '% ¥#jason&*'
print(name4.strip('% ¥#*')) # jason& 去掉两边选定的字符
ps:
# rstrip() lstrip()
# name5 = '$$$$jason$$$$'
# print(name5.lstrip('$')) # left左边 删除左边选定字符
# print(name5.rstrip('$')) # right右边 删除右边选定字符
5.切分split() 对原字符串中的某种分隔符,使用split()分割为列表取值
data = 'jaso n|123| handsome'
print(data.split('|')) # ['jaso n', '123', ' handsome']
把原字符串中的字符'|'当作分隔符,分割成列表,列表,列表(重要的事说三遍)
列表将不再有原先字符中的分隔符'|’
'
data = 'jaso n|123| handsome'
# print(data.split('o')) # ['jas', ' n|123| hands', 'me'] 切割的顺序其实从左往右的
# print(data.split('o',1)) # ['jas', ' n|123| handsome'] 切割的顺序其实从左往右的 只切一个
# print(data.rsplit('o',1)) # ['jaso n|123| hands', 'me'] 切割的顺序其实从右往左的 只切一个
# 所以说如果不指定那么split和rsplit效果是一样
6.# 3、startswith,endswith 布尔值
# s1 = 'egon is dsb'
# print(s1.startswith('e')) # 判断字符串是否以什么什么开头
# print(s1.endswith('n')) # 判断字符串是否以什么什么结尾
7.format的三种玩法
其一 按位置占位跟%s %d一致 老程序员喜欢用%,但现在python推荐用format
# 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) # my 18 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)
8.join()拼接
# data = 'jason|123|handsome'
# res_list = data.split('|')
# print(res_list)
# res_str = '$'.join(res_list) # 将容器类型中的多个元素通过指定字符拼接成一个字符串
# print(res_str)
# l = ['1','a','b'] # 1|a|b 要注意列表中的数据类型必须相同,不能是[1,'a','b']
# res = '|'.join(l)
# print(res)
9.replace()替换
str = 'egon is dsb and egon is sb he has a BENZ'
res = str.replace('egon','kevin',1)
print(res) # 把原字符串中的'egon'替换成'kevin',1表示从左往右只替换一个,
# 没有1则会全部替换
10.indaigit # 判断字符串中包含的是否为纯数字
# while True:
# age = input('>>>:')
# if age.isdigit(): #如果input中的字符串是纯整数则执行该if中的代码块
# age = int(age) #要注意输入<=28的纯整数时,会在此行断掉继续执行while循环
# if age > 28:
# print('阿姨好')
# else: # 如果不是纯整数则执行else代码块
# print('你他妈的能不能好好输')
12.ps:索引系列
# 需要了解的内置方法
# 1、find,rfind,index,rindex,count
s = 'kevin is dsb o and kevin 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')) # 统计字符出现的次数
13.center,ljust,rjust,zfill 填充系列
s9 = 'jason'
# print(s9.center(12,'*')) # ***jason**** 总共12个字符jason居中其余依次填充'*'
# print(s9.ljust(10,'$')) # jason$$$$$ 总共10个字符jason在左依次填充’$'
# print(s9.rjust(9,'$')) # $$$$jason 总共9个字符jason在右依次填充’$'
# print(s9.zfill(11)) # 000000jason 总共11个字符jason前方依次填充’0'
14.expandtabs() 扩展
# s10 = 'a bc'
# print(s10.expandtabs(100))
captalize,swapcase,title 字母大写系列
# s12 = 'hElLo WoRLD sH10'
# print(s12.capitalize()) # Hello world 首字母大写
# print(s12.swapcase()) # 大小写互换
# print(s12.title()) # 每个单词的首字母大小
15.is开头数字识别系列
num1 = b'4' # bytes
num2 = u'4' # unicode,python3中无需加u就是unicode
num3 = '壹' # 中文数字
num4 = 'Ⅳ' # 罗马数字
# ''.isnumeric(): unicode,中文数字,罗马数字 只要是表示数字都识别
print(num2.isnumeric()) # True
print(num3.isnumeric()) # True
print(num4.isnumeric()) # True
# ''.isdecimal(): unicode 只识别普通的阿拉伯数字
print(num2.isdecimal()) # True
print(num3.isdecimal()) # False
print(num4.isdecimal()) # True
# ''.isdigit() :bytes,unicode 通常情况下使用isdigit就已经满足需求了
print(num1.isdigit()) # True
print(num2.isdigit()) # True
print(num3.isdigit()) # False
print(num4.isdigit()) # False
16.list()构建列表
l1=list({'name':'jason','password':'123'})
print(l1) # ['name', 'password'] list只取字典中的key值构成列表
# list内部原理就是for循环取值 然后一个个塞到列表中去
# l=list('abc') # ['a', 'b', 'c']
17.索引系列
test描述:
# l = ['a', 'b', 'c', 'd']
# print(l[0:4:1]) # ['a', 'b', 'c', 'd'] 实际只取0到3位 步长为1
# print(l[0::]) # ['a', 'b', 'c', 'd'] 未指定步长的情况下,默认为1
# print(l[2::-1]) # ['c', 'b', 'a'] 顾头不顾尾,从第二位开始,步长为-1,往负轴方向索引,直至索引到结束
# print(l[5::-1]) # ['d','c', 'b', 'a'] 因为总共只有0到3位,5已经超出第三位,所以只能从第三位开始负向取值,直至索引结束
# print(id(l))
18.添加系列 append() insert()
1 = [99, 88, 77, 66]
# [11,22,33,44,55,99,88,77,66]
# 1.尾部添加一个66
# l.append(66) # 注意append值能将被添加的数据当作列表的一个元素
# print(l)
# l.insert(2,96) # [99, 88, 96, 77, 66] 通过索引在第二位置添加元素
# print(l) # 注意insert值能将被添加的数据当作列表的一个元素
# l.extend([1,2,3,]) # [99, 88, 77, 66, 1, 2, 3]将列表中的元素依次追加到列表l末尾
# print(l)
19.删除与弹出 del pop()
l = [1, 2, 3, 4, ]
# del l[2] # [1, 2, 4] del适用于所有的删除操作,删除的值不可用
# print(l)
# res1 = l.pop() # 尾部弹出
# res2 = l.pop()
# res3 = l.pop()
# print(res1,res2,res3) # 4 3 2 弹出的值还可用
# res = l.remove(3) # 指定要删除的元素的值
# print(l)
# print(res) # [1, 2, 4]