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.每个编码都有属于自己的对应关系表,读取时将硬盘上保存的二进制文件对应的编码的汉字,输出之后看到的是转换完成的字符串或者是已十六进制展示的二进制数据

 

二.类与对象概要

  类是面向对象程序设计中的概念,是面向对象编程的基础。

  类的实质是一种数据类型,类似于 int、char等基本类型,不同的是它是一种复杂的数据类型。因为它的本质是类型,而不是数据,所以不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。
 

 

 
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的对象,每个类对象的功能需要到该类里面查找

.基本数据类型之字符串功能(字符串是不可变类型

     str字符串
 -1.字符串首字母变大写
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'])  #以下划线进行拼接

 四.基本数据类型之整数功能

    -int 整数
   -1当前整数的二进制表示,最少位数
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

 

转载于:https://www.cnblogs.com/pylong/p/7064086.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值