zoukankan      html  css  js  c++  java
  • python_基础类型

    【python的基本数据类型及进制扫盲】

    一、进制

    1.进制简介

      进制就是进位制,是人们规定的一种进位方法。计算机底层的数据运算和存储都是二进制数据。计算机语言就是二进制,计算机能直接识别二进制数据,其它数据都不能直接识别。

    2.常用进制 

      对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。我们经常使用的是二进制、八进制、十进制、十六进制。

    • 十进制:有10个基本数字,分别为0、1、2、3、4、5、6、7、8、9,运算规则”逢十进一”;
    • 八进制:有8个基本数字,分别为0、1、2、3、4、5、6、7,运算规则”逢八进一”
    • 十六进制:有16个基本数字,分别为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,运算规则”逢十六进一”。

    • 二进制:有2个基本数字,分别为0、1,运算规则”逢二进一”。

    3.进制转换

    我们有最常用的转换方法:用十进制数据除以目标进制得到余数,并将余数从最后一个到第一个排列,就是转换后的目标进制表示形式(简称“除基取余,直到商为0,余数反转”)。以十进制43向二进制转换为例:

    得到的数值排列:101011,所以十进制43的二进制表示形式为101011,同理,如果求八进制、十六进制表示形式,用43除以8、16即可。

    二、基本数据类型

    1.字符串

    类:str

    方法:选中str,按住command(ctrl)+左键跳转至对应的方法

    字符串常用方法归纳如下:

    • 1)capitalize

    功能:实现字符串首字母大写,自身不变,会生成一个新的值

     capitalize

     例子:

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 name = 'hexin'
    4 v = name.capitalize() #调用str类,执行其中capitalize的方法
    5 print(v)

    输出:

    hexin
    Hexin
    • 2)casefold

    功能:将所有大写变成小写,另外支持多门语言变化

     casefold

    例子:

    1 name = 'HexIn'
    2 v = name.casefold()
    3 print(name)
    4 print(v)

    输出:

    HexIn
    hexin
    • 3)lower,upper

    功能:

    lower:将所有的大写变小写,局限英文

    upper:将所有小写变大写

     lower

    例子:

    1 name = 'HeXin'
    2 v = name.lower()
    3 print(name)
    4 print(v)

    结果:

    HeXin
    hexin
    • 4)center

    功能:文本居中,空白处填充字符

    参数1:表示总长度;参数2:空白处填充的字符(长度为1)

     center

    例子:

    1 name = 'HeXin'
    2 v = name.center(20,'*')
    3 print(name)
    4 print(v)

    输出:

    HeXin
    *******HeXin********
    • 5)count

    功能:表示要查找的子序列在字符串中出现的次数

    参数1:要查找的值(子序列);参数2:起始位置(索引);参数3:结束位置(索引)

     count

    例子:

    1 name = 'HeXinddaklfjsl;dfjcnljdajsflajdf'
    2 v = name.count('a')
    3 i = name.count('a',0,15)
    4 print(name)
    5 print(v)
    6 print(i)

    输出:

    3
    1
    • 6)endswith

    功能:判断是否以xx结尾

    参数1:判断值;参数2,3:起始和结束的位置(个数)

     endswith

    例子:

    1 name = 'HeXinddaklfjsl;dfjcnljdajsflajdf'
    2 v = name.endswith('df')
    3 i = name.endswith('n',0,5)
    4 print(name)
    5 print(v)
    6 print(i)

    输出:

    HeXinddaklfjsl;dfjcnljdajsflajdf
    True
    True
    • 7)expandtabs

    功能:找到制表符 ,进行替换(包含前面的值)

     expandtabs

    例子:

    1 name = "al	e	x
    alex	uu	kkk"
    2 v = name.expandtabs(5)  #包含前面的值,5个长度
    3 print(v)

    输出:

    al   e    x
    alex uu   kkk
    • 8)find

    功能:找到指定子序列的索引位置,不存在返回-1

     find

    例子:

    1 name = 'hexin'
    2 v = name.find('0')
    3 i = name.find('x')
    4 print(v)
    5 print(i)

    输出:

    -1
    2
    • 9)format,%s,format_map

    功能:字符串格式化

     format
     format_map

    例子:

    复制代码
     1 tpl1 = "我是:%s;年龄:%s;性别:%s" %( 'hexin',18,'man')
     2 print(tpl1)
     3 
     4 tpl2 = "我是:{0};年龄:{1};性别:{2}"
     5 v2 = tpl2.format("李杰",19,'都行')
     6 print(v2)
     7 
     8 tpl3 = "我是:{name};年龄:{age};性别:{gender}"
     9 v3 = tpl3.format(name='李杰',age=19,gender='随意')
    10 print(v3)
    11 
    12 tpl4 = "我是:{name};年龄:{age};性别:{gender}"
    13 v4 = tpl4.format_map({'name':"李杰",'age':19,'gender':'中'})
    14 print(v4)
    复制代码

    输出:

    我是:hexin;年龄:18;性别:man
    我是:李杰;年龄:19;性别:都行
    我是:李杰;年龄:19;性别:随意
    我是:李杰;年龄:19;性别:中
    • 10)isalnum

    功能:是否是数字或汉字

     isalnum

    例子:

    1 name = 'hexin0好'
    2 v = name.isalnum()
    3 print(v)

    输出:

    True
    • 11)isdecimal,isdigit,isnumeric

    功能:是否是数字

     isalnum
     isdecimal
     isdigit

    例子:

    1 num = '二'
    2 v1 = num.isdecimal() # '123'
    3 v2 = num.isdigit()   # '123','②'
    4 v3 = num.isnumeric() # '123','二','②'
    5 print(v1,v2,v3)

    输出:

    False False True
    • 12)isidentifer

    功能:是否是有效的标识符

     isidentifier

    例子:

    1 n = '1name'
    2 u = 'name'
    3 v = n.isidentifier()
    4 i = u.isidentifier()
    5 print(v)
    6 print(i)

    输出:

    False
    True
    • 13)islower(isupper)

    功能:是否全部是小写(大写)

     islower

    例子:

    1 name = 'hexin'
    2 name1 = 'Hexin'
    3 v = name.islower()
    4 i = name1.islower()
    5 print(v)
    6 print(i)

    输出:

    True
    False
    • 14)isprintable

    功能:是否包含隐含的XX(包含 , 等不可见字符为False)

     isprintable

    例子:

    1 name = 'hexindas	alj,hexin'
    2 v = name.isprintable()
    3 print(v)

    输出:

    False
    • 15)join

    功能:元素拼接

     join

    例子:

    复制代码
    1 name = 'hexin'
    2 
    3 v = "_".join(name) # 内部循环每个元素
    4 print(v)
    5 
    6 name_list = ['1','2','3','4']
    7 v = "+".join(name_list)
    8 print(v)
    复制代码

    输出:

    h_e_x_i_n
    1+2+3+4
    • 16)rjust,ljust

    功能:左右填充,类似center

     ljust

    例子:

    1 name = 'hexin'
    2 v = name.ljust(14,'*')
    3 i = name.rjust(6,'*')
    4 print(v)
    5 print(i)

    输出

    hexin*********
    *hexin
    • 17)maketrans,translate

    功能:创建对应关系,翻译转换

     maketrans

    例子:

    1 m = str.maketrans('aeiou','12345') # 对应关系
    2 name = "akpsojfasdufasdlkfj8ausdfakjsdfl;kjer09asdf"
    3 v = name.translate(m)
    4 print(v)

    输出:

    1kps4jf1sd5f1sdlkfj815sdf1kjsdfl;kj2r091sdf
    • 18)partition

    功能:分割,保留分割的元素

     partition

    例子:

    1 content = "9SB6SB6"
    2 v = content.partition('SB') # partition
    3 print(v)

    输出:

    ('9', 'SB', '6SB6')
    • 19)replace

    功能:替换

     replace

    例子:

    1 content = "1SB2SB3SB4"
    2 v = content.replace('SB','Love')
    3 print(v)
    4 v = content.replace('SB','Love',1)
    5 print(v)

    输出:

    1Love2Love3Love4
    1Love2SB3SB4
    • 20)strip

    功能:移除空白, , , 自定义

     strip

    例子:

    1 name = 'hexin 	'
    2 v = name.strip() # 空白,
    ,	
    3 print(v)

    输出:

    hexin
    • 21)zfill

    功能:填充0

     zfill

    例子:

    1 name = 'hexin'
    2 v = name.zfill(20)
    3 print(v)

    输出:

    000000000000000hexin

    2.整数

    类int

    • 1)bit_length

    功能:当前整数的二进制表示的最少位数

     bit_length

    例子:

    age = 4 # 100
    print(age.bit_length())

    输出:

    3

    • 2)to_bytes

    功能:获取当前数据的字节表示

     to_bytes

    例子:

    age = 15
    v = age.to_bytes(10,byteorder='big')
    v = age.to_bytes(10,byteorder='little')
    print(v)

    输出:

    b'x0fx00x00x00x00x00x00x00x00x00'

    3.list列表

    类list

    可变类型

    • 1)append

    功能:追加

     append

    例子:

    user_list = ['tom','刘','jack','n'] # 可变类型
    user_list.append('hex')
    print(user_list)

    输出

    ['tom', '刘', 'jack', 'n', 'hex']
    • 2)clear

    功能:清空

    例子:

    user_list = ['tom','刘','jack','n'] # 可变类型
    user_list.clear()
    print(user_list)

    输出:

    []
    • 3)copy

    功能:浅拷贝

    例子:

    user_list = ['tom','刘','jack','n'] 
    t = user_list.copy()
    print(user_list)
    print(t)

    输出:

    ['tom', '刘', 'jack', 'n']
    ['tom', '刘', 'jack', 'n']
    • 4)count

    功能:计数

    例子:

    user_list = ['tom','n','刘','jack','n','n']
    t = user_list.count('n')
    print(user_list)
    print(t)

    输出:

    ['tom', 'n', '刘', 'jack', 'n', 'n']
    3
    • 5)extend

    功能:扩展原列表

    例子:

    user_list = ['tom','n','刘','jack','n','n']
    user_list.extend('9')
    print(user_list)

    输出:

    ['tom', 'n', '刘', 'jack', 'n', 'n', '9']
    • 6)index

    功能:查找元素索引,没有报错

    例子:

    user_list = ['tom','n','刘','jack','n','n']
    v = user_list.index('n')
    print(v)

    输出:

    1

    • 7)pop

    功能:删除并获取元素,索引

    例子:

    user_list = ['tom','n','刘','jack','n','n']
    v = user_list.pop(1)
    print(v)
    print(user_list)

    输出:

    n
    ['tom', '刘', 'jack', 'n', 'n']
    • 8)remove

    功能:删除,值

    例子:

    user_list = ['tom','n','刘','jack','n','n']
    user_list.remove('n')
    print(user_list)

    输出:

    ['tom', '刘', 'jack', 'n', 'n']
    • 9)reverse

    功能:翻转

    例子:

    user_list = ['tom','n','刘','jack','n','n']
    user_list.reverse()
    print(user_list)

    输出:

    ['n', 'n', 'jack', '刘', 'n', 'tom']
    • 10)sort

    功能:排序

    例子:

    num = [11,2,3,6,111]
    num.sort()
    print(num)
    num.sort(reverse=True)
    print(num)

    输出:

    [2, 3, 6, 11, 111]
    [111, 11, 6, 3, 2]

    4.range

    • 1)创建

    py2.7:立即生成数字

    range(1,11) # 生成 1,23,,4,56.10

    py3:不会立即生成,只有循环迭代,才一个个生成;

    复制代码
    for i in range(1,11): 
        print(i)
    
    for j in range(1,11,2): 
        print(j)
    
    for k in range(10,0,-1): 
        print(k)
    复制代码
    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1
    3
    5
    7
    9
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    复制代码

    例子

    复制代码
    # li = ['eric','alex','tony']
    # for i in range(0,len(li)):
    # ele = li[i]
    # print(ele)


    li = ['eric','alex','tony']
    for i in li:
    print(i)

    # for i in range(0,len(li)):
    # print(i+1,li[i])
    复制代码

    输出

    eric
    alex
    tony

    5.enumerate

    功能:额外生成一列有序的数字

    例子

    复制代码
    li = ['eric','alex','tony']
    for i,ele in enumerate(li,1):
        print(i,ele)
    
    #1 eric
    #2 alex
    #3 tony
    复制代码
    复制代码
    li = ['eric','alex','tony']
    for i,ele in enumerate(li,1):
        print(i,ele)
    
    v = input('请输入商品序号:')
    v = int(v)
    item = li[v-1]
    print(item)
    
    
    #1 eric
    #2 alex
    #3 tony
    #请输入商品序号:1
    #eric
    复制代码

    6.tuple元组

    不可被修改类型,元组元素不可被修改,元祖是其他类型数据可以修改

    • 1)创建
    user_tuple = ('hex','eric','seven','hex')
    • 2)count

    功能:获取个数

    user_tuple = ('hex','eric','seven','hex')
    v = user_tuple.count('hex')
    print(v)

    #2
    • 3)index

    功能:获取值得第一个索引位置

    user_tuple = ('hex','eric','seven','hex')
    v = user_tuple.index('hex')
    print(v)
    
    #0
    • 4)注意:元组最后加逗号

    例子

    li = ('hx',)
    print(li)
    • 5)本身不可修改,但是元组元素是其他类型可以修改

    user_tuple = ('alex','eric','seven',['1','2','3'],'a4')
    # user_tuple[0] = 123 执行错误
    # user_tuple[3] = [11,22,33] 执行错误
    user_tuple[3][1] = '0'
    print(user_tuple)

    7.dict

    可变类型

    • 1)clear

    功能:清空

    dic = {'k1':'v1','k2':'v2'}
    dic.clear()
    print(dic)
    • 2)copy

    功能:浅拷贝

    dic = {'k1':'v1','k2':'v2'}
    v = dic.copy()
    print(v)
    • 3)get

    功能:根据key获取指定value,不存在不报错

    dic = {'k1':'v1','k2':'v2'}
    v = dic.get('k1111',1111)
    print(v)
    • 4)pop

    功能:删除并获取对应的value值

    # dic = {'k1':'v1','k2':'v2'}
    # v = dic.pop('k1')
    # print(dic)
    # print(v)

    输出:

    {'k2': 'v2'}
    v1
    • 5)popitem

    功能:随机删除键值对,并获取到删除的键值

    dic = {'k1':'v1','k2':'v2'}
    v = dic.popitem()
    print(dic)
    print(v)

    输出:

    {'k1': 'v1'}
    ('k2', 'v2')
    dic = {'k1':'v1','k2':'v2'}
    k,v = dic.popitem() # ('k2', 'v2')
    print(dic)
    print(k,v)

    输出:

    {'k2': 'v2'}
    k1 v1
    dic = {'k1':'v1','k2':'v2'}
    v = dic.popitem() # ('k2', 'v2')
    print(dic)
    print(v[0],v[1])

    输出:

    {'k1': 'v1'}
    k2 v2
    • 6)setdefault

    功能:增加,如果不存在即删除

    dic = {'k1':'v1','k2':'v2'}
    dic.setdefault('k3','v3')
    print(dic)
    dic.setdefault('k1','1111111')
    print(dic)

    输出:

    {'k2': 'v2', 'k1': 'v1', 'k3': 'v3'}
    {'k2': 'v2', 'k1': 'v1', 'k3': 'v3'}
    • 7)update

    功能:批量增加或修改

    dic = {'k1':'v1','k2':'v2'}
    dic.update({'k3':'v3','k1':'v24'})
    print(dic)

    输出:

    {'k1': 'v24', 'k2': 'v2', 'k3': 'v3'}
    • 8)fromkeys

    功能:从序列键和值设置为value来创建一个新的字典。

    例子:

    dic = dict.fromkeys(['k1','k2','k3'],123)
    dic['k1'] = 'asdfjasldkf'
    print(dic)

    输出:

    {'k2': 123, 'k1': 'asdfjasldkf', 'k3': 123}

    8.set

    集合,不可重复列表,可变类型。

    • 1)创建
    s1 = {"alex",'eric','tony'}
    print(type(s1))
    print(s1)

    输出:

    <class 'set'>
    {'alex', 'eric', 'tony'}
    • 2)difference

    功能:输出s1中存在,s2中不存在的值

    s1 = {"alex",'eric','tony','ii'}
    s2 = {"alex",'eric','tony','hexin'}
    v = s1.difference(s2)
    print(v)

     输出:

    {'ii'}
    • 3)difference_update

    功能:s1中存在,s2中不存在,然后对s1清空,然后在重新赋值

    s1 = {"alex",'eric','tony','ii'}
    s2 = {"alex",'eric','tony','hexin'}
    s1.difference_update(s2)
    print(s1)

    输出:

    {'ii'}
    • 4)symmetric_difference

    功能:s1中存在,s2中不存在的值及s2中存在,s1中不存在的值

    s1 = {"alex",'eric','tony','ii'}
    s2 = {"alex",'eric','tony','hexin'}
    v = s1.symmetric_difference(s2)
    print(v)
    {'ii', 'hexin'}
    • 5)intersection

    功能:交集

    s1 = {"alex",'eric','tony','ii'}
    s2 = {"alex",'eric','tony','hexin'}
    v = s1.intersection(s2)
    print(v)

    输出:

    {'eric', 'alex', 'tony'}
    • 6)union

    功能:并集

    s1 = {"alex",'eric','tony','ii'}
    s2 = {"alex",'eric','tony','hexin'}
    v = s1.union(s2)
    print(v)

    输出:

    {'alex', 'hexin', 'eric', 'ii', 'tony'}
    • 7)discard

    功能:移除

    s1 = {"alex",'eric','tony','ii'}
    s2 = {"alex",'eric','tony','hexin'}
    s1.discard('alex')
    print(s1)

    输出:

    {'eric', 'tony', 'ii'}
    • 8)update

    功能:添加

    s1 = {"alex",'eric','tony','李泉','李泉11'}
    s1.update({'alex','123123','fff'})
    print(s1)

    输出:

    {'fff', '李泉', '123123', 'tony', 'alex', 'eric', '李泉11'}
  • 相关阅读:
    企业网盘针对文件权限管理的技术实现
    学校私有云盘在学校信息化建设中的作用-教学资源库平台
    Mobox 知识管理平台助推市长质量奖
    为勇敢的华裔女子点赞
    一群喵星人把他家包围了。。
    【OI】简单的分块
    【OI】Kruskal & ufs (克鲁斯卡与并查集)
    【OI】向量&矩阵乘法
    【OI】同余方程
    【Ubuntu】某灯图标过大
  • 原文地址:https://www.cnblogs.com/MR-HAIBO/p/6935493.html
Copyright © 2011-2022 走看看