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

    变量命名规范

    name = 'wanglan'  #name 为变量
    print(name)

    1. 变量由数字,字母,下划线组成
    2. 变量不能以数字开头
    3. 禁止使用python中关键字
    4. 变量名要有意义
    5. 不能使用中文和拼音
    6. 变量名区分大小写 (大写为常量)
    7. 推荐写法:
        1.驼峰体
                1.1 大驼峰  WangLan
                1.2 小驼峰  wANGlAN
        2. 下划线 :wang_lan
    View Code

    注释

    # :当行注释(单行注释)
    ''' '''"""  """  # 多行注释

    int:整型

    用于计算和比较

    str:字符串

    python中只要使用引号引起来的都是字符串

    ' ' 
    " "
    '''  ''' 
    """  """

    字符串拼接

    a = 'wang'
    b = 'lan'
    print(a+b)
    
    结果:
    wanglan

    字符串和数字相乘

    a = 'wang'
    print(a * 5)
    结果:
    wangwangwangwangwang

    字符串操作

    title : 每个单词首字母大写

    name = 'wang lan'
    n = name.title()
    print(n)
    结果:
    Wang Lan
    View Code

    capitalize : 字符的首字母大写

    name = 'wang lan'
    n = name.capitalize()
    print(n)
    结果:
    Wang lan
    View Code

    upper : 全部大写

    name = 'wang lan'
    n = name.upper()
    print(n)
    结果:
    WANG LAN
    View Code

    lower : 全部小写

    name = 'WANG LAN'
    n = name.lower()
    print(n)
    结果:
    wang lan
    View Code

    count : 计数 统计

    name = 'wang lan'
    n = name.count('a') #统计a 出现的次数
    print(n)
    结果:
    2
    View Code

    find / index: 查找索引位置

    name = 'wang lan'
    n = name.find('n') #找到就返回,返回的索引位置,不会在继续寻找
    print(n)
    结果:
    2
    
    name = 'wang lan'
    n = name.find('f') #查找f的索引
    print(n)
    结果:
    -1   #找不到返回-1
    
    name = 'wang lan'
    n = name.index('n') #和find方法一样
    print(n)
    结果:
    2
    
    name = 'wang lan'
    n = name.index('f')  
    print(n) 
    结果:   #但是index找不到就保错
      n = name.index('f') 
    ValueError: substring not found
    View Code

    center : 居中

    name = 'wanglan'
    print(name.center(20)) #总长度为20 字符串居中
    结果:
          wanglan       
    
    
    name = 'wanglan'
    print(name.center(20,'*')) #字符串居中,空白以*填充
    结果:
    ******wanglan*******
    View Code

    split : 分割 (可以将字符串转化为列表)

    name = 'wang lan'
    print(name.split()) #默认为空格,结果是列表
    结果:
    ['wang', 'lan']
    
    
    name = 'wanglan'
    print(name.split('l')) #以l分割,分割后不含有分割符,也就是 l
    结果:
    ['wang', 'an']
    View Code

    strip : 去除空格

    name = '   wanglan  '  #字符串和引号中间是有空格的
    print(name.strip()) #默认脱头尾两边的空格和换行符 
    
    结果:
    wanglan
    
    name = 'qqwanglanqq'
    print(name.strip('q'))
    结果:
    wanglan
    View Code

    join : 指定字符拼接

    name = 'wanglan'
    print('_'.join(name))
    结果:
    w_a_n_g_l_a_n
    
    #一行代码把列表转换成字符串
    name = ['wanglan]'
    print(''.join(name))
    print(type(name))  #查看数据类型
    结果:
    wanglan
    <class 'list'>
    View Code

    replace :替换

    name = 'wanglan'
    print(name.replace('n','N')) #将小写的n替换成大写的N
    结果:
    waNglaN
    
    #去掉字符串内的空格
    name = 'w a n g l a n'
    print(name.replace(' ',''))# 将空格替换为空
    结果:
    wanglan
    View Code

    startswith : 以什么开头

    name = 'wanglan'
    print(name.startswith('w')) #如果是返回True
    print(name.startswith('f')) #如果不是返回False
    结果:
    True
    False
    View Code

    endswith : 以什么结尾

    name = 'wanglan'
    print(name.endswith('n')) #如果是就返回Ture
    print(name.endswith('f')) #如果不是就返回False
    结果:
    Ture
    False
    View Code

    format :格式化

    name = '{}a{}glan'
    s = name.format('w','n')
    print(s)
    结果:
    wanglan
    
    
    name = '{1}a{0}glan'
    s = name.format('w','n')
    print(s)
    结果:
    nawglan
    View Code

    isalnum : 判断是否数字和字母

    name = 'wanglan123'  #既可以是纯数字也可以是纯字母
    print(name.isalnum())
    
    结果:
    Ture
    View Code

    isalpha:判断是否为纯字母

    name = 'wanglan'
    print(name.isalpha())
    结果:Ture
    
    name = 'wanglan1'
    print(name.isalpha())
    结果:
    False
    View Code

    isdigit :判断是否为出数字

    name = '1234'
    print(name.isdigit())
    结果:
    Ture
    
    name = 'wanglna'
    print(name.isdigit())
    结果:
    False
    View Code

    其他

    name = 'anglna'
    print(name.islower())  #是否全部小写
    print(name.isupper())  #是否全部大写
    print(name.istitle())  #开头是否大写
    View Code

    字符串切片

    name = 'wanglan' #取值
               #0123456  :索引位置
    print(name[1])
    结果:
    a
    
    name = 'wanglan'
    print(name[0:3])  #[起始位置:终止位置],顾头不顾尾
    结果:
    wan
    
    name = 'wanglan'
    print(name[:5:2]) #[起始位置:终止位置:步长](方向),默认为1
    结果:
    wnl
    
    
    name = 'wanglan'
    print(name[-1:-5:-1]) #反向取值
    结果:
    nalg    
    View Code

    bool(布尔值)

    True :真 1
    False :假  0

    列表

    lsit 列表 [ ]   列表是可变的

    定义一个列表

    lst = ['wang','lan','1','2','3']

    列表的操作

    append :追加

    lst = ['wang','lan','1','2','3']
    lst.append(4)
    print(lst)
    
    结果:
    ['wang', 'lan', '1', '2', '3', 4]
    添加到最后

    insert :插入

    lst = ['wang','lan','1','2','3']
    lst.insert(2,'wl')  #第一个参数2(索引) 插入的位置,'wl'插入的内容
    print(lst)
    
    结果:
    ['wang', 'lan', 'wl', '1', '2', '3']
    插入

    entend : 迭代天剑

    lst = ['wang','lan','1','2','3']
    lst1 = [5,6,7,8]
    lst.extend(lst1)
    print(lst)
    
    结果:
    ['wang', 'lan', '1', '2', '3', 5, 6, 7, 8]
    View Code

    remove :通过元素进行删除,删除指定的元素

    lst = ['wang','lan','1','2','3']
    lst.remove('wang') #移除
    print(lst)
    
    结果:
    ['lan', '1', '2', '3']
    View Code

    pop :默认删除最后一个,pop有返回值,就是被删除的元素

    lst = ['wang','lan','1','2','3'] 
    lst.pop()  #默认删除最后一个
    print(lst)
    
    结果:
    ['wang', 'lan', '1', '2']
    
    
    lst = ['wang','lan','1','2','3']
    lst.pop(1) #通过元素的下标来删除
    print(lst)
    
    结果:
    ['wang', '1', '2', '3']
    View Code
    lst = ['wang','lan']
    l = lst.pop(0)
    print(l)
    结果:
    wang
    pop的返回值

    clear :清空

    lst = ['wang','lan','1','2','3']
    lst.clear()
    print(lst)
    结果:
    []
    View Code

    del : 删除列表

    lst = ['wang','lan','1','2','3']
    del lst
    print(lst)
    
    结果:
    NameError: name 'lst' is not defined
    
    lst = ['wang','lan','1','2','3']
    del lst[0] #同过索引删除
    print(lst)
    结果:
    ['lan', '1', '2', '3']
    View Code

    lst = ['wang','lan','1','2','3']
    lst[0] ='wl'  #通过索引修改
    print(lst)
    结果:
    ['wl', 'lan', '1', '2', '3']
    
    
    lst = ['wang','lan','1','2','3']
    lst[:2] ='wl','wl1','wl2'  #范围修改
    print(lst)
    结果:
    ['wl', 'wl1', 'wl2', '1', '2', '3']
    View Code

    lst = ['wang','lan','1','2','3']
    print(lst[3])
    结果:
    1
    View Code

    其他操作

    count : 统计

    lst = [1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1]
    print(lst.count(4)) #统计4出现的次数
    结果:
    2
    View Code

    index :查找索引

    lst = [1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1]
    print(lst.index(4)) #查找元素的下标
    结果:
    3
    View Code

    reverse :翻转

    lst = [1,2,3,4,5,6,7,8,9]
    lst.reverse()
    print(lst)
    结果:
    [9, 8, 7, 6, 5, 4, 3, 2, 1]
    View Code

    sort :排序

    lst = [1,3,5,7,9,2,4,6,8]
    lst.sort()  
    print(lst)
    从小到大排
    lst = [1,3,5,7,9,2,4,6,8]
    lst.sort(reverse=True)
    print(lst)
    
    结果:
    [9, 8, 7, 6, 5, 4, 3, 2, 1]
    从大到小排

    copy:拷贝

    lst = [1,3,5,7,9,2,4,6,8]
    lst1 = lst.copy()
    print(lst1)
    
    结果:
    [1, 3, 5, 7, 9, 2, 4, 6, 8]
    View Code
    lst = [1,2,3,4,5]
    for i in range(len(lst)):
        lst.pop()
    print(lst)
    
    []
    通过for循环删除列表中的内容

    列表嵌套

    lst = [1,2,3,4,5,[6,7,8,9]]
    print(lst[0])
    print(lst[5])
    print(lst[5][2])
    
    结果:
    1
    [6, 7, 8, 9]
    8
    
    lst = ['wang','lan',['w']]
    lst[2].append('wanglan')
    print(lst)
    结果:
    ['wang', 'lan', ['w', 'wanglan']]
    View Code

    元组

    tuple :元组  ( )   

    定义一个元组

    tu = (1)   #括号里如果只有一个类型就是此类型
    print(type(tu))
    结果:
    <class 'int'>
    
    tu1 = (1,)  #括号里有逗号就时元组
    print(type(tu1))
    结果:
    <class 'tuple'>
    View Code

    元组的操作

    index :查找索引

    tu = (1,2,3,4)
    print(tu.index(2))
    1

    count :统计

    tu = (1,2,3,4,3,2,2)
    print(tu.count(2))
    结果:
    3
    View Code

    元组内的内容不可修改,但是可以切片和for循环

    tu = (1,2,3,4,3,2,2)
    print(tu[:2])
    结果:
    0 1
    
    
    tu = (1,2,3,4,3,2,2)
    for i in tu:
        print(i)
    结果:
    1
    2
    3
    4
    3
    2
    2
    View Code
    s = {1,2,3,4,5,6,}
    s.update("wang")
    print(s)
    
    {1, 2, 3, 4, 5, 6, 'n', 'w', 'a', 'g'}
    迭代添加
    s = {1,2,3,4,5,6,}
    s.clear()
    print(s)
    
    set()
    清空

    字典

    dict 字典 { }  

    键值对 {键:值}

    dic = {'wang':'lan',1:'wl','True':2,(1,2):3}  #键必须是不可变的
    print(dic)
    结果:
    {'wang': 'lan', 1: 'wl', 'True': 2, (1, 2): 3}

    取值

    dic = {'wang':'lan',1:'wl','True':2,(1,2):3}
    for i in dic:
        print(i)
    
    结果:   打印的是字典的键
    wang
    1
    True
    (1, 2)
    View Code

     字典的操作

    dic = {'name':'wanglan'} #键不存在就添加
    dic['age']= 18
    print(dic)
    
    结果:
    {'name': 'wanglan', 'age': 18}
    
     
    dic = {'name':'wanglan'} #键存在就修改
    dic['name']= 'wl'
    print(dic)
    
    结果:
    {'name': 'wl'}
    View Code

    setdefault :存在就不进行添加,不存在就添加

    dic = {'name':'wanglan'}
    dic.setdefault('name','wl')
    print(dic)
    结果:
    {'name': 'wanglan'}  #存在就不添加,也不会修改
    
    
    dic.setdefault('age',18)
    print(dic)
    结果:
    {'name': 'wanglan', 'age': 18} #不存在就天加
    View Code

    pop :通过键来删除

    dic = {'name':'wanglan','age':18}
    d = dic.pop('age')  #pop必须给值,值为字典的键,pop有返回值
    print(dic)
    print(d)  
    结果:
    {'name': 'wanglan'}
    18 #被删除键的值
    View Code

    popitem :随机删除,在python3.6中删除最后一个,python3.5及以下随机删除

    dic = {'name':'wanglan','age':18} 
    dic.popitem() #popitem返回的是被删除的键和值,以元组的形式显示,元组中第一个是键,第二个是值
    View Code

    del  :删除字典

    del dic #删除整个字典
    
    
    dic = {'name':'wanglan','age':18}
    del dic['name']  #通过键来删除
    print(dic)
    View Code

    clear:清空字典

    dic = {'name':'wanglan','age':18}
    dic.clear()
    print(dic)
    结果:
    {}
    View Code

    直接改

    dic = {'name':'wanglan','age':18}
    dic['name'] = 'wl'
    print(dic)
    
    结果:
    {'name': 'wl', 'age': 18}
    View Code

    update :没有就添加,有就修改

    dic = {'name':'wanglan'}
    dic.update({'age':18})
    print(dic)
    结果:
    {'name': 'wanglan', 'age': 18}
    View Code
    dic = {'name':'wanglan'}
    dic1 = {'age':18}
    dic.update(dic1)
    print(dic)
    
    结果:
    {'name': 'wanglan', 'age': 18}
    View Code

    get

    dic = {'name':'wanglan'}
    print(dic.get('name'))  #通过键来查找
    print(dic.get('age'))  #如果没有找到,默认返回None
    print(dic.get('age','没有找到')) #如果没有找到,可以自定义返回值
    
    结果:
    wanglan
    None
    没有找到
    View Code
    dic = {'name':'wanglan'}
    print(dic['age']) #如果没有找到会报错
    
    结果:
    KeyError: 'age' 
    View Code

    其他操作

    dic = {'name':'wanglan','age':18}
    for i in dic:
        print(i)
    
    结果:
    name
    age
    for 循环取得的是键
    dic = {'name':'wanglan','age':18}
    for i in dic:
        print(dic[i])
    通过for循环取值
    dic = {'name':'wanglan','age':18}
    for i in dic:
        print(dic.get(i))
    
    结果:
    wanglan
    18
    推荐使用get来取值
    dic = {'name':'wanglan','age':18}
    for i in dic:
        print(i,dic.get(i))
    
    结果:
    name wanglan
    age 18
    取键值
    dic = {'name':'wanglan','age':18}
    for i in dic.keys():
        print(i)
    
    结果:
    name
    age
    通过 keys 取键
    dic = {'name':'wanglan','age':18}
    for i in dic.values():
        print(i)
    
    结果:
    wanglan
    18
    通过 values 取值
    dic = {'name':'wanglan','age':18}
    for i in  dic.items():
        print(i)
    
    结果:
    ('name', 'wanglan')
    ('age', 18)
    items :以元组的形式得到键值对
    dic = {'name':'wanglan','age':18}
    for k,v in  dic.items():
        print(k,v)
    
    结果:
    name wanglan
    age 18
    通过解构获取,不在是元组的形式
    lst = {}
    dic ={'a':1,'b':2}
    
    for i in dic:
        lst[i]= dic[i]
    
    for i in lst:
        dic.pop(i)
    print(dic)
    通过for循环删除字典中的内容
    dic = dict.fromkeys(['alex','wusir','wenzhou','nvshen','kaige'],['太白','姗姗'])
    # fromkeys 第一是键  第二是值   逐一将值赋予给键
    print(dic)
    
    dic['alex'].append('老村长')   在其中一个键中添加一个值,其他键中的值也会增加
    print(dic)
    
    
    {'alex': ['太白', '姗姗'], 'wusir': ['太白', '姗姗'], 'wenzhou': ['太白', '姗姗'], 'nvshen': ['太白', '姗姗'], 'kaige': ['太白', '姗姗']}
    {'alex': ['太白', '姗姗', '老村长'], 'wusir': ['太白', '姗姗', '老村长'], 'wenzhou': ['太白', '姗姗', '老村长'], 'nvshen': ['太白', '姗姗', '老村长'], 'kaige': ['太白', '姗姗', '老村长']}
    fromkeys

    嵌套

    av_catalog = {
        '欧美':{
            'www.youporn.com':['很多免费的,世界最大','质量一般'],
            'www.pornhub.com':['很多免费的,很大','质量比youpirn高点'],
            'letmedothistoyou.com':['多事自拍,高质量图片很多','资源不多,更新慢'],
            'x-art.com':['质量很高,真的很高','全部收费,屌丝请绕行']
        },
        '日韩':{
            'tokyo':['质量很高,个人已经不喜欢日韩范了','听说是收费的']
        },
        '大陆':{
            '1024':['全部免费,好人一生平安','服务器在国外,慢']
        }
    }
    av_catalog['欧美']['www.youporn.com'][1] = '高高清清' #修改指定的值,首先找到大的字典里的键,然后在找到资格字典里套的这个字典的键,然后在找到要修改的这个内容在列表的位置。
    #找到日韩
    print(av_catalog['日韩'])
    #找到欧美的www.pornhub.com
    print(av_catalog['欧美']['www.pornhub.com'])
    #找到欧美的www.pornhub.com中的 很多免费的,很大
    print(av_catalog['欧美']['www.pornhub.com'][0])
    View Code

    解构

    a = 10
    b = 20
    a,b = b,a
    print(a)   #20
    print(b)   #10
    
    结果:
    20
    10
    View Code
    a,b = (1,2)
    print(a)
    print(b)
    
    结果:
    1
    2
    元组解构
    a,b = [1,2]
    print(a,b)
    
    结果:
    1  2
    元组解构
    a,b = '您好'
    print(a,b)
    
    结果:
    您 好
    字符串解构

    集合

    set { }    

    s = {}
    print(type(s))
    <class 'dict'>
    空{}就是一个字典

    定义一个集合

    s = {1,2,3,4,5}

    集合可以是如下内容

    s = {1,2,3,'22','ss',False,(3,4)}

    集合自带去重功能

    s = {1,2,3,4,5,6,3,4,1}
    print(s)
    
    {1, 2, 3, 4, 5, 6}
    View Code

    集合操作

    s = {1,2,3,4,5,6,}
    s.add(7)
    print(s)
     结果:
    {1, 2, 3, 4, 5, 6, 7}
    View Code

    随机删除

    s = {1,2,3,4,5,6,}
    s1 = s.pop()   返回值,返回的被删除的元素
    print(s)
    print(s1)
    
    结果:
    {2, 3, 4, 5, 6}
    1
    View Code

    删除整个集合

    s = {1,2,3,4,5,6,}
    del s
    print(s)
    
    NameError: name 's' is not defined
    View Code

    通过元素指定删除

    s = {1,2,3,4,5,6,}
    s.remove(2)
    print(s)
    结果:
    {1, 3, 4, 5, 6}
    View Code

    先删除,后添加

    s = {1,2,3,4,5,6,}
    s.remove(2)
    s.add(7)
    print(s)
    
    {1, 3, 4, 5, 6, 7}
    View Code

    for 循环

    s = {1,2,3,4,5,6,}
    for i in s:
        print(i)
    
    1
    2
    3
    4
    5
    6
    View Code

    面试题

    将列表去重

    lst = [1,2,3,42,3,45,67,534,2]
    lst1 = set(lst)   将列表转换为集合进行去重
    lst = list(lst1)    将得到的集合转换为列表
    print(lst)
    
    [1, 2, 3, 67, 42, 45, 534]
    
    写到一起
    lst = [1,2,3,42,3,45,67,534,2]
    print(list(set(lst)))
    View Code

    其他操作

    s  = {"黑哥"}
    s1 = {'虎哥','开哥','alex哥','黑哥','wu哥'}
    print(s & s1)  #  交集  俩个集合都有的才输出
    print(s | s1)  #   并集  两个集合 合并到一起
    print(s1 - s)  # 差集   前面减后边的集合前边集合中有的输出出来   自己总结
    print(s ^ s1)  # 反交集  输出不一样的
    print(s < s1)  # 子集
    print(s1 > s)   # 超(父)集
    View Code

    冻结结合

    dic = {{1,2,3}:1}    集合不能作为键
    a = frozenset((1,2,3))   同过frozenset将元组冻结
    dic ={a:1}  元组就可以作为键了
    print(dic)
    print(dic)
    View Code

    深浅拷贝

    浅拷贝

    lst = [1,2,3,[4,5,6],7]
    lst1 = lst    #赋值
    lst2 = lst[:] # 切片  切片等于浅拷贝
    lst.append(7)
    print(lst)
    print(lst2)
    
    [1, 2, 3, [4, 5, 6], 7, 7]
    [1, 2, 3, [4, 5, 6], 7]
    拷贝的是第一层元素

    深拷贝

    import copy
    lst = [1,2,3,[4,5,6],7]
    st4 = copy.deepcopy(lst)  # 深拷贝
    lst[-2].append(7)
    print(lst)   # [1, 2, 3, [4, 5, 6,7], 7]
    print(lst4)  #[1, 2, 3, [4, 5, 6], 7]
    复制一个全新,与原有的没有联系

    面试题

    a = [1, 2]
    a[1] = a  # [1,[1,2]]
    print(a[1])
    
    答案:
     [1, [...]]
    View Code

    编码

     ascii # 不支持中文
     unicode 万国码 中文4个字节 英文 2个
     utf-8 最少使用1个字节 欧洲 2 亚洲 3
     gbk 中文 2 英 1
     Windows 默认编码GBK

    a = '你好黑'
    a1 = 'alex'
    
    a2 = a.encode('utf-8')   #编码
    print(a)
    print(a2)
    a3 = a2.decode('utf-8')  #解码
    print(a3)
    bytes字节   用于传输和存储
    
    a = '你好黑'
    a1 = 'alex'
    a2 = a.encode('gbk')  #编码
    a3 = a.encode('utf-8')   # 最长用
    print(a2)
    print(a3)
    a4 = a2.decode('gbk') #解码
    a5 = a3.decode('utf-8')
    print(a4,a5)
    View Code

     

    小数据池

    数字的范围
     -5 ~ 256
    
    字符串 :
    乘法的总数长度不能超过20个,0和1除外
    不能有特殊字符
    
    a = '@'*2
    b = '@'*2
    print(a is b)
    
    a = 'asfasdfas@aasdfasdf'
    b = 'asfasdfas@aasdfasdf'
    print(a is b)  #查看是不是一个
    节省内存地址

    程序交互

    input: 输入

    input 获取到的内容都是字符型类型的

    age = input('输入数字:')
    print(type(age))  #type:查看数据类型
    结果:
    输入数字:1
    <class 'str'>  #字符串类型

    输入内容不显示(必须在交互模式中)

    import getpass
    user = input('输入账号:')
    pwd = getpass.getpass('输入密码:')

    格式化输出

    %s:字符串(通用)   %d和%i:数字

    print('name:%s age:%s' %('wanglan',18))
    结果:
    name:wanglan age:18

    format

    print('name:{} age:{}' .format('wanglan',18))
    结果:
    name:wanglan age:18
    
    print('name:{1} age:{0}' .format('wanglan',18))
    结果:
    name:18 age:wanglan

    f

    name = input('姓名:')
    age = input('年龄:')
    print(f'姓名:{name} 年龄:{age}')
    结果:
    姓名:wanglan
    年龄:18
    姓名:wanglan 年龄:18

     

  • 相关阅读:
    软件测试学习总结
    MySQL数据库中主键和索引的区别和联系
    什么是接口测试及其测试流程
    bug生命周期
    啊这...2-get/post请求区别,来给你看看post请求url中传参
    啊这...1-get/post请求区别,你还在认为get只能在url传参吗?传json格式会咋样?
    关于博客园全站内容审核中...如出现此问题:请移步xxx
    git-2-企业级gitlab的使用及管理工具Sourcetree
    fiddler-12-Proxifier+fiddler进行PC端抓包
    微信小程序弹出订阅消息确认弹窗的限制
  • 原文地址:https://www.cnblogs.com/wanglan/p/7590344.html
Copyright © 2011-2022 走看看