zoukankan      html  css  js  c++  java
  • python 基础二

    python 基础二 (基础数据类型)

    一、基础数据类型

    1. int

          表现类型:' 2,3,。。。' 主要用于计算,运算,

    #bit_lenght() 当十进制用二进制表示时,最少使用的位
    a = 12
    data = a.bit_length()
    print(data) #return 4

       2.str

        ‘hello’,‘NIHAO’,‘哦’...少量的数据用于存储

         2.1、字符串的索引与切片

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

        

    a = 'qweerttyui'
    print(a[0])
    print(a[1])
    print(a[2])
    print(a[3])
    print(a[4])
    print(a[5])

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

      

    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]) #反向加步长

        2.2、字符串的常用方法

    #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()) #字符串只由数字组成
    str——view code

        3.bool

        真  1  True

        假  0  Flase

    ----插语: 我喜欢35,我一直以为是pink呢,原来是紫红。。

    #print输出,改变背景颜色 
    格式:33[显示方式;前景色;背景色m
      
    说明:
    前景色            背景色           颜色
    #
    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)
    #
    # l1 = li.pop(1) #按照位置去删除,有返回值
    # print(l1)
    
    # del li[1:3] #按照位置去删除,也可切片删除没有返回值。
    # print(li)
    
    # li.remove('a') #按照元素去删除
    # print(li)
    
    # li.clear() #清空列表
    #
    # li = [1,'a','b',2,3,'a']
    # li[1] = 'dfasdfas'
    # print(li)
    # li[1:3] = ['a','b']
    # print(li)
    #
    切片去查,或者循环去查
    
    
    
    ---------------------------------------
    30                40              黑色
    31                41              红色
    32                42              绿色
    33                43              黄色
    34                44              蓝色
    35                45              紫红色
    36                46              青蓝色
    37                47              白色
    显示方式           意义
    -------------------------
    0                终端默认设置
    1                高亮显示
    4                使用下划线
    5                闪烁
    7                反白显示
    8                不可见
      
    例子:
    033[1;31;40m    <!--1-高亮显示 31-前景色红色  40-背景色黑色-->
    033[0m          <!--采用终端默认设置,即取消颜色设置-->

     二、列表

     增删改查

    #
    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)
    
    #
    # l1 = li.pop(1) #按照位置去删除,有返回值
    # print(l1)
    
    # del li[1:3] #按照位置去删除,也可切片删除没有返回值。
    # print(li)
    
    # li.remove('a') #按照元素去删除
    # print(li)
    
    # li.clear() #清空列表
    
    
    #
    # li = [1,'a','b',2,3,'a']
    # li[1] = 'dfasdfas'
    # print(li)
    # li[1:3] = ['a','b']
    # print(li)
    #
    切片去查,或者循环去查。
    增删改查

    其他操作

    #通过元素找索引
    # print(list.index(2))
    
    #sort reverse
    # li = [1,2,3,4,7,9,6,5]
    # li.sort()
    # print(li)
    # li.sort(reverse=True)
    # print(li)
    
    #reverse 反向排列
    
    #l1 = [1, 2, 'alex', 'wusir',['oldboy', 'ritian', 99], 'taibai']
    #1 #第一种
    # l1[2] = 'ALEX'
    # print(l1)
    # #第二种
    # l1.pop(2)
    # l1.insert(2,'alex'.upper())
    # print(l1)
    # l1[2] = l1[2].upper()
    #2
    # l1[4].append('女神')
    # print(l1)
    #3
    # l1[4][1] = l1[4][1].capitalize()
    # print(l1)
    #4
    # l1[-2][-1] = str(l1[-2][-1] +1)
    # print(l1)
    #字符串拼接
    # l1[-2][-1] = str(l1[-2][-1]) + '1'
    # print(l1)

    三、元组

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

    四、字典

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

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

    增删改查

    #字典3.6版本之前,字典是无序的,暂定之后是有序的
    dic = {'name':'taibai', 'age':21, 'habby':'gril'}
    
    #
    dic['name'] = 'ritian'
    print(dic)
    dic.setdefault() #有则不变,无则添加
    dic.setdefault('high',180)
    dic.setdefault('name','ritian')
    print(dic)
    
    #
    print(dic.pop('name')) #返回对应的值
    print(dic)
    print(dic.pop('name1',None))
    dic.clear() #清空
    print(dic)
    
    del dic
    print(dic)
    
    del dic['age']
    print(dic)
    
    print(dic.popitem()) #3.6之前,随机删除,之后不确定
    print(dic)
    #
    dic['name'] = '老男孩'
    
    dic2 = {'name':'alex','weight':75}
    dic2.update(dic) #将dic的建值对覆盖添加到dic2中,dic不变
    print(dic)
    print(dic2)
    
    #
    print(dic['name'])
    print(dic.get('name','sb代')) #如果没有返回None,也可以设置返回值
    
    #keys() values() items()
    print(dic.keys())
    for i in dic.keys():
        print(i)
    print(dic.values())
    for i in dic.values():
        print(i)
    print(dic.items())
    for i in dic.items():
        print(i)
    
    #分别赋值
    a,b = 1,2
    a,b,c = ['yoyo', 'xiaolou', 'rita'] #必须元素与变量数量一致
    print(a,b,c)
    a = 1
    b = 5
    a,b = b,a
    print(a,b)
    for k, v in dic.items():
        print(k, v)
    
    #len
    print(len(dic))

    fromkeys与字典的嵌套使用

    #fromkeys
    dic1 = dic.fromkeys('abc', '张三')
    dic2 = dic.fromkeys([1, 2, 3], '李四')
    print(dic2)
    dic3 = dic.fromkeys('abc', [])
    dic3['a'].append('老男孩')
    print(dic3)
    
    #字典的嵌套
    dic = {
        'name_list':['b哥', '张帝', '人帅', 'kitty'],
        '老男孩':{
            'name':'老男孩',
            'age': 46,
            'sex': 'ladyboy'
        },
    }
    #1
    dic['name_list']=dic['name_list'].append('骑兵')
    #2
    dic['name_list'][-1] = dic['name_list'][-1].upper()
    # print(dic)
    #3
    #dic.popitem()
    dic.setdefault('oldboy',{'name':'oldboy','age': 46, 'sex': 'ladyboy'})
    #4
    dic['oldboy']['sex'] = dic['oldboy']['sex'].capitalize()
    dic['老男孩'].setdefault('name','oldboy')
    print(dic)
    View Code

    五、其他(for,enumerate,range)

    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)
    复制代码

    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)    
    复制代码

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

    复制代码
    for i in range(1,10):
        print(i)
    
    for i in range(1,10,2):  # 步长
        print(i)
    
    for i in range(10,1,-2): # 反向步长
        print(i)

      

    ps:这个知识点知道的人太多了,本来不想写的,最后还是抄了上来,迷之脑袋,基础搞差不多了,多撸撸代码,让这些知识变成自己的,都在努力中

                                      ----LDoctor

  • 相关阅读:
    LightOJ 1132 Summing up Powers(矩阵快速幂)
    hdu 3804 Query on a tree (树链剖分+线段树)
    LightOJ 1052 String Growth && uva 12045 Fun with Strings (矩阵快速幂)
    uva 12304 2D Geometry 110 in 1! (Geometry)
    LA 3263 That Nice Euler Circuit (2D Geometry)
    2013 SCAUCPC Summary
    poj 3321 Apple Tree (Binary Index Tree)
    uva 11796 Dog Distance (几何+模拟)
    uva 11178 Morley's Theorem (2D Geometry)
    动手动脑
  • 原文地址:https://www.cnblogs.com/lyh0301/p/8811026.html
Copyright © 2011-2022 走看看