• 基础数据类型的整理


    基础数据类型

    一、数字int

    数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以:

    #bit_length() 当十进制用二进制表示时,最少使用的位数
    v = 11
    data = v.bit_length()
    print(data)

    二、字符str

    1.索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

    2.切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

    a = 'ABCDEFGHIJK'
    print(a[0:3])
    print(a[2:5])
    print(a[0:]) #默认到最后
    print(a[0:-1]) #-1就是最后一个
    print(a[0:5:2]) #加步长
    print(a[5:0:-2]) #反向加步长

    3.字符串的常用方法

    #captalize,swapcase,title
    print(name.capitalize()) #首字母大写
    print(name.swapcase()) #大小写翻转
    msg='egon say hi'
    print(msg.title()) #每个单词的首字母大写
    
    # 内同居中,总长度,空白处填充
    ret2 = a1.center(20,"*")  
    print(ret2)
    
    #数字符串中的元素出现的个数。
    # ret3 = a1.count("a",0,4) # 可切片
    # print(ret3)
    
    a2 = "hqw	"
    #	前面的补全
    # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
    ret4 = a2.expandtabs()
    print(ret4)
    
    a4 = "dkfjdkfasf54"
    #startswith 判断是否以...开头
    #endswith 判断是否以...结尾
    # ret4 = a4.endswith('jdk',3,6)  # 顾头不顾腚
    # print(ret4)  # 返回的是布尔值
    # ret5 = a4.startswith("kfj",1,4)
    # print(ret5)
    
    #寻找字符串中的元素是否存在
    # ret6 = a4.find("fjdk",1,6)
    # print(ret6)  # 返回的找到的元素的索引,如果找不到返回-1
    
    # ret61 = a4.index("fjdk",4,6)
    # print(ret61) # 返回的找到的元素的索引,找不到报错。
    
    #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
    # ret9 = 'title,Tilte,atre,'.split('t')
    # print(ret9)
    # ret91 = 'title,Tilte,atre,'.rsplit('t',1)
    # print(ret91)
    
    #format的三种玩法 格式化输出
    res='{} {} {}'.format('egon',18,'male')
    res='{1} {0} {1}'.format('egon',18,'male')
    res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
    
    #strip
    name='*egon**'
    print(name.strip('*')) 
    print(name.lstrip('*'))
    print(name.rstrip('*'))
    
    #replace
    name='alex say :i have one tesla,my name is alex'
    print(name.replace('alex','SB',1))
    
    #####is系列
    name='jinxin123'
    print(name.isalnum()) #字符串由字母或数字组成
    print(name.isalpha()) #字符串只由字母组成
    print(name.isdigit()) #字符串只由数字组成
    #公共方法
    公共方法:
    s = 'aasfhfsaflf'
    len()  #总个数
    print(len(s))
    count  #计算某些元素出现的个数,可切片
    c1 = s.count('f')
    print(c1)

    三、bool值

    布尔值就两种:True,False。就是反应条件的正确与否。

    真   1   True。

    假   0   False。 

    四、列表list

    列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

    li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

    列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

    1.增

    li = [1,'a','b',2,3,'a']
    li.insert(0,55) #按照索引去增加
    print(li)
    li.append('aaa') #增加到最后
    li.append([1,2,3]) #增加到最后
    print(li)
    
    li.extend(['q,a,w']) #迭代的去增
    li.extend(['q,a,w','aaa'])
    li.extend('a')
    li.extend('abc')
    li.extend('a,b,c')
    print(li)

    2.删

    l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
    #pop 按照索引去删除, 有返回值
    ret = l1.pop(0)
    print(ret)
    print(l1)
    
    #remove 按照元素删除
    l1.remove('alex')
    print(l1)
    
    #clear 清空列表
    l1.clear()
    print(l1)
    
    # del
    #1,在内存级别删除列表
    del l1
    print(l1)
    #2,按照索引删除。
    del l1[2]
    print(l1)
    #3,切片删除+步长。
    del l1[:-1]
    print(l1)

    3. 改

    #1,按照索引去改。
    l1[0] = '肖锋'
    print(l1)
    l1[-1] = '男神'
    print(l1)
    #2,按照切片去改,先将切片的区域内的内容全部删除,在迭代着添加内容。
    l1[:3] = '范德萨发给ghfkhgh;'
    l1[:3] = [1111, 2222, 3333, 4444]
    print(l1)

    4.查

    # 按照索引切片去查
    #for循环
    # for i in l1:
    #     print(i)

    5.公共方法

    len 个数
    cou = len(l1)
    print(cou)
    
    count 元素个数
    print(l1.count('taibai'))
    
    index 通过元素找索引
    print(l1.index('alex', 3))
    
    l2 = [1, 3, 5, 9, 7, 6, 2, 4]
    sort 从小到大,正序排序
    l2.sort()
    print(l2)
    sort 从大到小,倒序排序
    l2.sort(reverse=True)
    print(l2)
    
    翻转 reverse
    l2.reverse()
    print(l2)

    列表的嵌套

    l1 = ['wusir', 'alex', [99, ' taibai', '98'], 21]
    # 1, 将wusir变成全部的大写。
    # l1[0] = 'WUSIR'
    # print(l1)
    # print(l1[0].upper())
    # l1[0] = l1[0].upper()
    # print(l1)
    
    # 2,将‘taibai'变成首字母大写,其他字母小写,放回原处。
    # print(l1[2])
    # l2 = l1[2]
    # l2[1] = l2[1].strip().capitalize()
    # l1[2][1] = l1[2][1].strip().capitalize()
    # print(l1)
    # l1[2].append('舒淇')
    # print(l1)
    # 3,用数字的相加将99 变成 字符串的 '100'.
    # l1[2][0] = str(l1[2][0] + 1)
    # print(l1)
    # 4,字符串的'98' 变成数字的100.
    # l1[2][2] = int(l1[2][2]) + 2
    # print(l1)
    在循环一个列表时,最好不要改变列表的大小,会影响你的最终结果。
    l1 = [111, 222, 333, 444, 555, ]
    del l1[1::2]
    print(l1)
    
    # 倒着删除。
    for index in range(len(l1)-1, -1, -1):
        if index % 2 == 1:
             del l1[index]
    print(l1)

    五、字典dict

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

      字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    1.增

    dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
    dic['sex'] = 'LaddyBoy'
    dic['name'] = 'Alex'  有则覆盖,没有就添加
    dic.setdefault('sex')
    dic.setdefault('sex', 'Laddyboy') 有则不变,无则添加。
    dic.setdefault('name', 'alex')
    print(dic)

    2.删

    print(dic.pop('age'))  # 有返回值,返回的是键对应的值
    print(dic.pop('age1', '没有此键...'))
    print(dic)
    
    dic.clear() 清空字典
    print(dic)
    
    print(dic.popitem())  # 随机删除,有返回值,返回值为元组,里面是删除的键值对。
    print(dic)
    
    del
    1,删除整个字典
    del dic
    2,按照键删除键值对
    del dic['name']
    print(dic)

    3.改

    1, dic['name'] = 'Alex'  有则覆盖,没有就添加
    update 两个字典的更新
    dic = {"name": "jin", "age": 18, "sex": "male"}
    dic2 = {"name": "alex", "weight": 75}
    dic2.update(dic)  # 将dic里面的所有键值对 覆盖添加到dic2中,dic不变
    print(dic)  # {'name': 'jin', 'age': 18, 'sex': 'male'}
    print(dic2)  # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

    4.查

    1,dic['name']
    print(dic['name1'])
    
    2,dic.get('name')
    print(dic.get('name'))
    print(dic.get('name1'))
    print(dic.get('name1', 'sb没有此键'))
    
    #for循环查询
    dic.keys(), dic.values(), dic.items()  #类似于list但不是list的类型。
    print(dic.keys(),type(dic.keys()))
    for key in dic.keys():
        print(key)
    l_key = list(dic.keys())
    print(l_key)
    
    for value in dic.values():
        print(value)
    
    l_value = list(dic.values())
    print(l_value)
    print(dic.items())

    字典的嵌套

    # dic = {
    #     'name_list': ['碗蓉', '俊俊', '爽妹'],
    #     'status': None,
    #     'personal_msg': {
    #         'name': '反面教材',
    #         'age': 25,
    #         'hobby_list': ['抽烟', '喝酒', '烫头'],
    #     }
    # }
    
    # 1,给dic添加一个键值对,学校:老男孩
    # dic['学校'] = '老男孩'
    # print(dic)
    # 2,将status对应的值改成True
    # dic['status'] = True
    # print(dic)
    # 3,给name_list对应的列表追加一个元素:平平
    # print(dic['name_list'])
    # dic['name_list'].append('平平')
    # print(dic)
    # 4,给personal_msg对应的字典添加一个键值对sex:男
    # dic2 = dic['personal_msg']
    # dic2['sex'] = '男'
    # print(dic)
    # dic['personal_msg']['sex'] = '男'
    # print(dic)
    # 5,将hobby_list 对应的列表中的烫头改成唱歌。
    dic['personal_msg']['hobby_list'][-1] = '唱歌'
    print(dic)
    在循环dict中,最好不要改变dict的大小,会影响结果或者报错
    dic = {'k1': 'v1', 'k2': 'v2','k3': 'v3','name': 'alex'}
    for i in dic:
        if 'k' in i:
            del dic[i]
    print(dic)
    
    
    l1 = []
    for key in dic:
        if 'k' in key:
            l1.append(key)
    # print(l1)
    for key in l1:
        del dic[key]
    print(dic)
    dic = dict.fromkeys('abc', 666)
    print(dic)
    dic = dict.fromkeys([11, 22, 33], 666)
    print(dic)
    dic = dict.fromkeys([1, 2, 3], [])
    dic[1].append(666)
    print(dic)
    
    C:PythonPython36python3.exe "D:/老男孩12期笔记/day07/day07课堂笔记/day07/02 数据类型的补充.py"
    {'a': 666, 'b': 666, 'c': 666}
    {11: 666, 22: 666, 33: 666}
    {1: [666], 2: [666], 3: [666]}
    
    Process finished with exit code 0

    六、元组tuple

    元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")

    # tu = (11, 22, 33, 44, 55)
    #索引,切片,步长
    # print(tu[0])
    # print(tu[:3:2])
    # for i in tu:
    #     print(i)
    # index  len  count
    tu1 = ('wusir', 'alex', [22, 44, 'taibai'],)
    # tu1[-1].append('女神')
    # print(tu1)
    # l1 = [22,33]
    # l1.append(tu1)
    # # print(l1)
    # l1.clear()
    # print(l1)
    # del tu1
    # print(tu1)
    # l2 = [1,('wusir', 'alex', [22, 44, 'taibai'],)]
    # l2.clear()
    # print(l2)
    元组里面如果只有一个元素且没有逗号,则该数据的数据类型与里面的元素相同。
    tu1 = ('laonanhai')
    tu2 = ('laonanhai',)
    print(tu1, type(tu1))
    print(tu2, type(tu2))
    
    tu1 = (1)
    tu2 = (1,)
    print(tu1, type(tu1))
    print(tu2, type(tu2))
    
    tu1 = ([1, 2, 3])
    tu2 = ([1, 2, 3],)
    print(tu1, type(tu1))
    print(tu2, type(tu2))

    七、集合set

    集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:

      去重,把一个列表变成集合,就自动去重了。

      关系测试,测试两组数据之前的交集、差集、并集等关系。

    1,集合的创建。

    set1 = set({1,2,'barry'})
    set2 = {1,2,'barry'}
    print(set1,set2)  # {1, 2, 'barry'} {1, 2, 'barry'}
    
    #空集合表示方法为 
    set()

    2.集合的增

    # add
    set1 = {'alex','wusir','ritian','egon','barry'}
    set1.add('景女神')
    print(set1)
    
    #update:迭代着增加
    set1.update('A')
    print(set1)
    set1.update('老师')
    print(set1)
    set1.update([1,2,3])
    print(set1)

    3.集合的删

    set1 = {'alex','wusir','ritian','egon','barry'}
    
    set1.remove('alex')  # 删除一个元素
    print(set1)
    
    set1.pop()  # 随机删除一个元素
    print(set1)
    
    set1.clear()  # 清空集合
    print(set1)
    
    del set1  # 删除集合
    print(set1)

    4.集合的查

    #for循环
    for i in set1:
         print(i)

    5.集合的交集并集等操作

    1.交集(&  或者 intersection)

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 & set2)  # {4, 5}
    print(set1.intersection(set2))  # {4, 5}

    2.并集(| 或者 union)

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7}
    
    print(set2.union(set1))  # {1, 2, 3, 4, 5, 6, 7}

    3.差集(- 或者 difference)

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 - set2)  # {1, 2, 3}
    print(set1.difference(set2))  # {1, 2, 3}

    4.反交集 (^ 或者 symmetric_difference)

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}
    print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}

    5.子集与超集

    set1 = {1,2,3}
    set2 = {1,2,3,4,5,6}
    
    print(set1 < set2)
    print(set1.issubset(set2))  # 这两个相同,都是说明set1是set2子集。
    
    print(set2 > set1)
    print(set2.issuperset(set1))  # 这两个相同,都是说明set2是set1超集。

    八、其他(for,enumerate,range)。

    1.for循环:用户按照顺序循环可迭代对象的内容。

    msg = '老男孩python是全国范围内最好的python培训机构'
    for item in msg:
        print(item)
    
    li = ['alex','银角','女神','egon','太白']
    for i in li:
        print(i)
    
    dic = {'name':'太白','age':18,'sex':'man'}
    for k,v in dic.items():
        print(k,v)

    2.enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),

    enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

    li = ['alex','银角','女神','egon','太白']
    for i in enumerate(li):
        print(i)
    for index,name in enumerate(li,1):
        print(index,name)
    for index, name in enumerate(li, 100):  # 起始位置默认是0,可更改
        print(index, name)

    3.range:指定范围,生成指定数字。

    range 当做自定义的数字范围列表,
    满足顾头不顾腚,可以加步长,与for循环结合使用。
    for i in range(0, 101):  #[0,1,2,3,....100]
        print(i)
    for i in range(11):  # [0,1,2,3,....10]
        print(i)
    for i in range(0, 101, 3):
        print(i)
    for i in range(10, 0, -1):
        print(i)
    l1 = [22, 33, 33, 33, 66, 77, 88, 99]
    for i in l1:
        print(l1.index(i))
    for i in range(len(l1)):
        print(i)
    l1 = ['wusir', 'alex', [99, ' taibai', '98'], 21]
    for i in l1:
        if type(i) == list:
            for j in i:
                print(j)
        else:print(i)
  • 相关阅读:
    深入浅出Blazor webassembly之Local storage
    深入浅出Blazor webassembly之一种简单的部署方法
    深入浅出Blazor webassembly之以SubDirectory方式部署
    深入浅出Blazor webassembly之理解 Blazor WASM
    深入浅出Blazor webassembly之Logging
    [转]解决github不能访问的问题
    深入浅出Blazor webassembly之使用State container机制实现两组件联动
    深入浅出Blazor webassembly之使用EventCallback机制进行组件之间联动
    跳槽一年后的回顾
    Node.js躬行记(12)——BFF
  • 原文地址:https://www.cnblogs.com/wj12312/p/9003195.html
Copyright © 2020-2023  润新知