Day02-进制与基本数据类型介绍
一.进制介绍
a.进制:进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
b.进位制/位置计数法是一种记数方式,故亦称进位记数法/位值计数法,可以用有限的数字符号代表所有的数值。可使用数字符号的数目称为基数(en:radix)或底数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。
二进制:它由两个基本数字0,1组成,二进制数运算规律是逢二进一。
八进制:它由八个基本数字0,1,2 , 3 ,4 ,5 ,6 ,7 组成,八进制数运算规律是逢八进一
十进制:它由十个基本数字0,1,2,,3,4, 5,6,7, 8, 9,组成,十进制数运算规律是逢十进一
十六进制:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数10~15),十六进制数运算规律是逢十六进一
c.文件存储到硬盘上,硬盘上面的数据是是以二进制的形式保存的。(也就是01001000方式)
d.每个编码都有属于自己的对应关系表,读取时将硬盘上保存的二进制文件对应的编码的汉字,输出之后看到的是转换完成的字符串或者是已十六进制展示的二进制数据
二.类与对象概要
![](https://images2015.cnblogs.com/blog/1182486/201706/1182486-20170622113217632-452603393.png)
str # 类str name1 = "huangzhong1" #str类的对象, name1.split() #类str的功能 name1.strip() name2 = "huangzhong2" #str类的对象 name2.split() name2.strip() name3 = "huangzhong3" name3.split() name3.strip() int num = 19 #类int的对象,每个类对象的功能需要到该类里面查找 list li = [1,2,3,43]# 类list的对象,每个类对象的功能需要到该类里面查找 dict dic = {'k1': 'v1'}#类dict的对象,每个类对象的功能需要到该类里面查找
三.基本数据类型之字符串功能(字符串是不可变类型)
name = 'alex' #str类的对象 #capitalize 字符串首字母大写 #自身不变,会生成一个新的值 v = name.capitalize() #自动 找到name关联的str类,执行其中的capitalize技能 print(name) print(v) 结果: alex Alex
-2.将大写变小写
#将所有大写变小写,casefold更牛逼,德语.. name = 'Alex' v = name.casefold() print(name) print(v) 结果: Alex alex
-3文本居中
name = 'alex' v = name.center(20) print(v) #文本居中 #参数1:表示总长度 #参数2:空白处填充的字符,(且长度只为1) v = name.center(20,'*') print(v) 结果: alex ********alex********
-4 表示传入值在该字符串中出现的次数
name = 'asdasddsgedsdsafreds' #表示传入值在字符串中出现的次数
#参数1:要查找的值(子序列)
#参数2:起始位置(只能是索引)
#参数3:结束位置(只能是索引)
v = name.count('a') #查找单个字母 print(v) v = name.count('sd') #查找组合字母 print(v) v = name.count('sd',12) #指定起始位置开始查找 print(v) v = name.count('sd',12,15) #指定开始到结束位置查找 print(v)
-5以什么开头,以什么结尾
#是否以什么结尾 name = 'alex' v1 = name.endswith('ex') print(v1) #是否已什么开头 v2 = name.startswith('al') print(v2)
-6找到 制表符\t,进行替换
#找到 制表符\t,进行替换,包含前面的值ps:\n换行 name = 'long\tliu\tlongkun\nliuhao\tnnfd\tdfdsf\t' v = name.expandtabs(10) print(v) 结果: long liu longkun liuhao nnfd dfdsf
-7查找指定子序列的索引位置,不存在返回-1
name = 'alex' v = name.find('l') print(v)
-8字符串格式化
tpl = "我是:{0};年龄:{1};性别:{2}" v = tpl.format('猪',19,'男女') print(v) tpl = "我是:{name};年龄:{age};性别:{gender}" v = tpl.format(name='龙坤生',age=24,gender='男') print(v)
-9判断是否是数字
num = '123' v1 = num.isdecimal() #'123' v2 = num.isdigit() #'123''②' v3 = num.isnumeric() #'123' '二' '②' print(v1,v2,v3)
-10判断是否是汉字,数字
name = 'alex8数字*' v = name.isalnum() #字,数字 print(v) #True v2 = name.isalpha() print(v2)
-11是否是标示符
n = 'name' v = n.isidentifier() print(v)
-12是否全是小写,大写
name = 'alex' v = name.islower() print(v)
v = name.isupper()
print(v)
-13全部变成大写
name = 'alex' v = name.upper() print(v)
-14是否全部是空格
name = ' ' v = name.isspace() print(v)
-15元素拼接(元素字符串)*****
name = 'alex' v = '_'.join(name) #内部循环每个元素 print(v) name_list=['海峰','杠娘','李杰'] v = 'gao'.join(name_list) print(v)
-16左右填充
#宽度, 左 右填充 #center ,rjust,ijust name = 'alex' v = name.rjust(20,'*') print(v)
-17对于关系+翻译
m = str.maketrans('abce','1234') #对应关系 name = 'sdfasfwaasdfsdvdbarwetergsda' v = name.translate(m) print(v)
-18分割,保留分割的元素
content = '1sb2' v = content.partition('sb') print(v)
-19替换
content = '1sb2sb34sb5' v = content.replace('sb','love') print(v) v = content.replace('sb','love',1) #数字1代表的替换几个
print(v)
-20移除空白,\n,\t,自定义
name = 'alex\t' v = name.strip() #可以移动空白,\n换行,\t制表符 print(v)
-21大小写转换
name = 'Alex' v = name.swapcase() print(v)
-转换成字节 *****
name = '李杰' v1 = name.encode(encoding='utf-8') #字节类型 print(v1) v2 = name.encode(encoding='gbk') #字节类型 print(v2)
#######字符串功能总结:必须会
name = 'long' name.upper() name.lower() name.split() name.find() name.strip() name.startswith() name.format() name.replace() '_'.join(['aa','bb']) #以下划线进行拼接
四.基本数据类型之整数功能
age = 4
print(age.bit_length())
五.基本数据类型之列表功能
-list
-1追加
user_list = ['a','b','c','d','f'] #可变类型 user_list.append('龙坤生') print(user_list)
-2清空
user_list = ['a','b','c','d','f'] user_list.clear() print(user_list)
-3计数
user_list = ['a','b','c','d','f','f'] v = user_list.count('f') print(v)
-4扩展元列表
user_list = ['a','b','c','d','f','f'] user_list.extend(['we','ig']) ##可同时追加多个元素 print(user_list)
-5查找元素索引,没有报错
user_list = ['a','b','c','d','f','f'] v = user_list.index('f') print(v)
6-删除并且获取元素--索引删除
user_list = ['a','b','c','d','f','f'] v = user_list.pop(1) ##按照索引查找,pop删除后并把删除值赋给v print(v) print(user_list)
-7根据元素值删除
user_list = ['a','b','c','d','f','f'] user_list.remove('b') print(user_list)
-8翻转顺序
user_list = ['a','b','c','d','f','f'] user_list.reverse() print(user_list)
-9排序
user_list = ['a','x','c','d','f','f'] user_list.sort() ###从小到大 print(user_list) user_list.sort(reverse=True) ###从大到小 print(user_list)
-10 range强插之
range(1,11) #Python3 不会立即生成。只有循环迭代时,才一个一个生成 for i in range(1,11): print(i) for i in range(10,0,-1): print(i) li = ['eric','alex','tony'] #range,len,li循环 for i in range(0,len(li)): long = li[i] print(long )
-11强插之enumrate
#enumerate 额外生成一列有序的数字 li = ['eric','alex','tony'] for i,ele in enumerate(li,1): print(i,ele) v = input('请输入商品序号:') v = int(v) inte = li[v-1] print(inte)
六.基本数据类型之元组功能
-tuple 元组是不可修改的列表,不可变类型,元组后必须加逗号(‘A’,)
-1获取个数
user_tupl = ('a','b','c','d',) v = user_tupl.count('a') print(v)
-2获取值的第一个位置
user_tupl = ('a','b','c','d',) v = user_tupl.index('b') print(v)
-3元组额外功能
元组循环
user_tupl = ('a','b','c','d',) for i in user_tupl: print(i)
元组索引取值
user_tupl = ('a','b','c','d',) v = user_tupl[0] print(v)
元组区间取值
user_tupl = ('a','b','c','d',) v = user_tupl[0:2] print(v)
元组不可修改,元组内可变的元素列表是可以被修改
user_tupl = ('a','b',['aa','bb','cc'],'c','d',) user_tupl[2][1]='dd' ##2代表的元组里列表的索引位置,1代表列表中索引要修改的位置 print(user_tupl)
七.基本数据类型之字典功能
-字典
-1清空
dic = {'k1':'v1','k2':'v2'} dic.clear() print(dic)
-2浅拷贝
dic = {'k1':'v1','k2':'v2'} v = dic.copy() print(v)
-3根据key获取value: 不存在不报错,可指定默认返回报错信息
dic = {'k1':'v1','k2':'v2'} v = dic.get('k1','该值没有返回信息') print(v)
-4删除并获取对应的value值
dic = {'k1':'v1','k2':'v2'} v = dic.pop('k1') print(dic) print(v)
-5随机删除键值对,并获取到删除的键值
dic = {'k1':'v1','k2':'v2'} v,k = dic.popitem() print(dic) print(v,k)
-6增加,如果存在则不增加
dic = {'k1':'v1','k2':'v2'} dic.setdefault('k3','v3') print(dic)
-7批量增加或修改
dic = {'k1':'v1','k2':'v2'} dic.update({'k3':'v4','v1':'v2'}) print(dic)
字典额外
## -字典key:必须是不可变类型 dic = { 'k1':'v1', 'k2':[1,2,3,], (1,2):'1111', 1:'fff', 111:'asdas', } print(dic) #key: #-不可变 #-True 1