zoukankan      html  css  js  c++  java
  • 基础数据类型补充,二次编码

    2019 年 7 月 12 日

    基础数据类型补充 和 一些遇到的坑

    基础数据类型补充

    str :

    ​ 1.1 首字母大写 capitalize

    name = "alex"
    name1 = name.capitalize()
    print(name1)
    
    #Alex
    

    ​ 1.2 每个单词首字母大写 title

    name = "alex wusir"
    name1 = name.title()
    print(name1)
    
    #Alex Wusir  字符串是不可修改的,所以必须赋值之后才可以输出
    

    ​ 1.3 大小写反转 swapcase

    name  = "Alex"
    name1 = name.swapcase()
    print(name1)
    #aLEX
    

    ​ 1.4 居中———填充 center

    name = "alex"
    name1 = name.center((20))
    print(name1)
    #       alex     
    
    
    
    
    name = "alex"
    name1 = name.center(20,"*")    #20 代表字符的宽度   ""里放的是填充的符号
    print(name1)
    #********alex********
    

    ​ 1.5查找 : 从左向右,只查找一个 find index

    name = "alex"
    name1 = name.find("l")
    print (name1)
    # 1         不存在的话返回-1
    
    
    name = "alex"
    name1 = name.index("l")
    print (name1)
    #  1    index 查找如果不存在的话就报错
    
    

    ​ 1.6 拼接 join

    name = "alex"
    print("_".join(name))  #冒号里的是拼接符号   join 后面的是可迭代对象
    

    ​ 1.7 格式化 % f name.format() 三种方法

    name = "alex {},{},{}"
    name1 = name.format(1,2,3)   #按照顺序进行填充
    print(name1)
    
    #alex 1,2,3
    
    
    name = "alex {2},{0},{1}"
    name1 = name.format("a","b","c")
    print(name1)
    #
    alex c,a,b                   #按照索引位置进行填充
    
    
    
    
    name = "alex {a},{b},{c}"
    name1 = name.format(a=1,b=21,c=67)   
    print(name1)
    
    # alex 1,21,67             #按照关键字进行填充
    
    

    list

    定义方式: 排序(默认升序) 反转 降序

    lst = []
    或者  a = list
    
    name = "alex"
    name1 = "wusir"
    print(id(name))
    print(id(name1))
    print(id(name1+name))    #地址都不一样,+ *  开辟新的空间
    #
    4518631664
    4518737488
    4520142192
    

    排序sort

    lst = [1,2,323,34,4,56,78,90]
    lst.sort()
    print(lst)
    #[1, 2, 4, 34, 56, 78, 90, 323]    
    
    如果是中文
    
    lst = ["你好","我是","刘亦菲"]
    lst.sort()
    print(lst)
    
    #['你好', '刘亦菲', '我是']   #按照的是python3 中自带的 utf-8 排序
    

    反转 reverse

    lst = [1,2,3,4,5,6,7]
    lst.reverse()
    print(lst)
    #
    [7, 6, 5, 4, 3, 2, 1]    就是进行倒着排序 或者利用切片还有另外一种方法
    
    
    
    lst = [1,2,3,4,5,6,7]
    print(lst[::-1])
    #
    [7, 6, 5, 4, 3, 2, 1]
    
    

    降序

    lst = [1,2,5,67,77.88,335,567,345]
    lst.sort()
    lst.reverse()
    print(lst)
    #[567, 345, 335, 77.88, 67, 5, 2, 1]    #先排序后然后调了个顺序
    

    面试题将两个列表合成一个

    way1:
    lst = [12,3,4,5]
    lst1 = [6,7,8,9]
    lst.extend(lst1)
    print(lst)
    #[12, 3, 4, 5, 6, 7, 8, 9]
    
    way2:
    lst = [12,3,4,5]
    lst1 = [6,7,8,9]
    print(lst + lst1)
    #[12, 3, 4, 5, 6, 7, 8, 9]
    
    
    lst = [[]]
    new_lst = lst * 5       #[[], [], [], [], []]
    new_lst[0].append(10)  #第一层可变元素  进行改变  都改变  遇到 append一定要注意  这是修改里面的元素了
    print(new_lst)
    #  [[10], [10], [10], [10], [10]]
    
    
    下面增加一个修改不变的
    lst = [1,[]]
    new_lst = lst * 5   #[1, [], 1, [], 1, [], 1, [], 1, []]
    new_lst[0] = 10
    print(new_lst)
    #
    [10, [], 1, [], 1, [], 1, [], 1, []]     #修改的是第一层中不可变数据   所以不变   又是拷贝那里的知识
    
    
    
    lst = [1,[]]
    new_lst = lst * 5
    new_lst[1] = 10
    print(new_lst)
    #[1, 10, 1, [], 1, [], 1, [], 1, []]   #不变的原因和上面一样,没有涉及到第二层添加元素
    
    
    lst = [12,3,4,5]
    new_lst = lst * 5
    new_lst[0] is new_lst[-4]
    print(new_lst)
    print(id(new_lst[0]),id(new_lst[-4]))
    
    #
    [12, 3, 4, 5, 12, 3, 4, 5, 12, 3, 4, 5, 12, 3, 4, 5, 12, 3, 4, 5]
    4379281808 4379281808
    

    tuple

    tu = (1)   #数据类型是()中数据本身
    tu = (1,)  #定义的是元组
    
    元组 + * 不可变共用,可变也共用
    

    dict

    定义一个字典还有这种方式:dict(k=1,k1=2)
    
    

    随机删除 popitem (被删除的是键对值)

    dic = {"key1":1,"key2":2}
    dic.popitem()
    print(dic)
    #{'key1': 1}   #小声比比,一般来说在python3 中删的都是最后一个
    
    

    批量添加 fromkeys

    dic = {}
    dic1 = dic.fromkeys("123",[23])    #键是可迭代对象   值会被共用
    print(dic1)
    #
    {'1': [23], '2': [23], '3': [23]}
    
    dic = dict.fromkeys("123456789",1) # 批量添加键值对"键是可迭代对象",值 -- 会被共用
    dic["1"] = 18
    print(dic)
    #{'1': 18, '2': 1, '3': 1, '4': 1, '5': 1, '6': 1, '7': 1, '8': 1, '9': 1}
    
    
    

    set

    set()-----空集合
    {}   -----空字典
    定义集合
    set()
    
    

    一些false 的情况

    数字:0
    字符串:""
    其他:None
    列表:[]
    元组:()
    集合:set()
    调皮:3 < 2
    
    

    数据类型之间转换

    list  tuple
    tuple list
    
    str list
    name = "alex"  
    print(name.split())  #["alex"]  重点  重点
    
    list str
    lst = ["1","2","3"]
    print(''.join(lst))  #123      重点  重点
    
    dict -- str
    dic = {"1":2}
    print(str(dic),type(str(dic)))
    print(dict("{1:1}"))
    
    

    python 数据类型

    python数据类型:
    可变:
    list ,dict ,set
    不可变:
    int bool str tuple
    有序:
    list,tuple,str,int,bool
    无序:
    dict,set
    取值方式:
    索引: str list tuple
    直接: set ,int ,bool
    键: dict 
    
    

    二次编码

    密码本:
    ascii  -- 没有中文
    gbk    -- 英文 8b(位) 1B(字节) 中文 16b 2B
    unicode -- 英文16b 2B  中文32b 4B
    utf-8 --   英文8b 1B  欧洲16b 2B  亚洲24b 3B
    
    
    name = "你好啊"
    s1 = name.encode("utf-8") # 编码  9
    s2 = name.encode("gbk") # 编码  6
    s2 = s1.decode("utf-8") # 解码
    print(s2.encode("gbk"))
    
    以什么编码集(密码本)进行编码就要用什么编码集(密码本)解码
    
    
    

    遇到的坑

  • 相关阅读:
    ubuntu 系统命令
    js模板引擎实例一
    读取页面上所有的checkbox
    使用fileReader实现图片预览
    html5中的audio标签针对IOS系统的兼容处理
    CSS单位
    使用变换属性的旋转和动画属性实现大风车效果
    css动画属性--轮播图效果
    php curl详解
    linux权限详解
  • 原文地址:https://www.cnblogs.com/hualibokeyuan/p/11178119.html
Copyright © 2011-2022 走看看