zoukankan      html  css  js  c++  java
  • Python 基础知识(二)

    一、基础数据类型

    1、数字int

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

    #bit_length() 当十进制用二进制表示时,最少使用的位数
    # -*- coding:UTF-8 -*-
    v = 11
    data = v.bit_length()
    print(data)
    # 二进制:
    # 0   0   0   0  0  0  1  0
    # 十进制:
    # 128 64  32  16 8  4  2  1
    #因为11小于16,而16占用5位。11最小占用应该为4位。
    输出内容为:4

     2、布尔值

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

    真   1   True。

    假   0   False。    

    """
    int  ---> str :str(int)       ##数字转为字符串
    str  ---> int :int(str) str必须全部是数字组成。    ##字符串转为数字
    
    int --- > bool  0 False  非零 True     ##数字转为bool
    bool ---> int  int(True) 1    int(False)  0       ##布尔转为数字
    
    str ---> bool  '' False   非空字符串 True     ##字符串转为bool.
    """

    3、字符串

    3.1、字符串的索引

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

    A = 'alex bog d3dfj%sdkfA'
    s1 = A[0]
    print(s1)     #输出内容:a
    s2 = A[3]
    print(s2)     #输出内容:x
    s3 = A[-1]
    print(s3)      #输出内容:A

    3.2、字符串的切片

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

    a = 'ABCDEFGHIJK'
    print(a[0:4])       #输出: ABCD
    print(a[2:5])        #输出:CDE
    print(a[0:])          #后面区间不加表示默认输出到最后。输出:ABCDEFGHIJK
    print(a[0:5:2])       #加步长,最后面的2为步长。输出:ACE
    print(a[5:0:-2])       #反向步长。输出:FDB

    3.3、字符串的方法

    a = 'cd Adfsdfs 12EF dG677JK'
    #capitaliza方法     首字母大写
     print(a.capitalize())                   #Cd adfsdfs 12ef %g677jk
    #swapcase方法      大小写翻转
    print(a.swapcase())                     #CD aDFSDFS 12ef %g677jk
    #title      每个单词的首字母大写
     print(a.title())                         #Cd Adfsdfs 12Ef Dg677Jk
    #center方法      内容居中,总长度,空白处填充
     print(a.center(30))                      #   cd Adfsdfs 12EF dG677JK
    空白处用*填补
    r =a.center(30,"*")
    print(r)                                    #***cd Adfsdfs 12EF dG677JK****
    
    #count方法    统计字符串元素出现的个数
    r = a.count("d")                      #统计“d”在语句中出现的次数
    print(r)                               ## 输出结果:   4
    
    r = a.count("d",0,5)                #统计“d”在下标区间为0到5中间出现的次数
    print(r)                               #输出结果:    2
    #startwith   判断是否以...开头
    s = a.startswith('c')
    print(s)                       #返回布尔值:True
    s = a.startswith('A',3,6)
    print(s)                      #在下标3到6间查找是否以大写字母A开头
    #判断是否以...结尾
    s= a.endswith('k')
    print(s)                       ##返回布尔值:false
    
    s4 = a.find('A',0,6)
    print(s4)                  ##找不到就返回-1(数组下标),找到就返回内容对应的下标,此处返回A对应的数组下标4
    
    #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
    ret9 = 'title,Tilte,atre,'.split('t')
    print(ret9)                    ##输出结果:['', 'i', 'le,Til', 'e,a', 're,']
    
    #strip方法
    name = '*start**'
    #去除语句中所有的“*”
    print(name.strip('*'))               输出结果:  start
    #去除语句头部的“*”
    print(name.lstrip('*'))               输出结果: start**
    #去除语句尾部的“*”
    print(name.rstrip('*'))               输出结果: *start
    
    #replace 替换
    name = 'alex say :i have one tesla,my name is alex.
    print(name.replace('alex','sb',1))      #将Alex替换成sb,后标位置为1时,替换一个。后标位置的数字表示要替换的个数。
    
    #is方法
    name = 'jenxin123'
    print(name.isalnum())         #字符串由字母和数字组成
    print(name.isalpha())         #字符串由字母组成
    print(name.isdigit())         #字符串由数字组成
    View Code

     4、元组

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

    5、列表

    5.1、增

    li = ['alex',123,True,(1,2,3, ' wusir '),[1,2,3, ' 小明'],{ 'name','alex '}]
    #insert  按着索引去增加
    # li.insert(0,55)
    # print(li)                      # 输出:[55, 'alex', 123, True, (1, 2, 3, ' wusir '), [1, 2, 3, ' xe5xb0x8f
    
    xe6x98x8e'], set(['name', 'alex '])]
    #append 追加到最后
    # li.append('aaa')
    # print(li)                      #输出内容: [55, 'alex', 123, True, (1, 2, 3, ' wusir '), [1, 2, 3, ' xe5xb0x8f
    
    xe6x98x8e'], set(['name', 'alex ']), 'aaa']
    #extend 迭代的去增加
    # li.extend(['a,q,w'])
     print(li)                       #输出内容:['alex', 123, True, (1, 2, 3, ' wusir '), [1, 2, 3, ' xe5xb0x8fxe6x98x8e'], set(['name', 'alex ']), 'a,q,w']
    列表的增

    5.2、删

    pop 按着位置去删除,有返回值
    # l1 = li.pop(1)
    # print(l1)                        #输出:123
    # print(li)                        #输出:['alex', True, (1, 2, 3, ' wusir '), [1, 2, 3, ' xe5xb0x8fxe6x98x8e'], 
    
    set(['name', 'alex '])]
    
    #del 按着位置去删除,也可以切片删除,没有返回值
    # del li[1:3]
    # print(li)                        #输出:['alex', (1, 2, 3, ' wusir '), [1, 2, 3, ' xe5xb0x8fxe6x98x8e'], set
    
    (['name', 'alex '])]
    #remove  按着元素去删除
    li.remove(123)
    # print(li)                       #输出: ['alex', True, (1, 2, 3, ' wusir '), [1, 2, 3, ' xe5xb0x8fxe6x98x8e'], set(['name', 'alex '])]
    #clear 清空列表
    li.clear()
    列表的删

    5.3、改

    # li = [1,'a','b','c',2,3]
    # li[1] = 'dfsdfsdfsdfgbc'
    # print(li)                  # 输出:[1, 'dfsdfsdfsdfgbc', 'b', 'c', 2, 3]
    # li[1:3] = ['c','ddddssgvb']
    # print(li)
    列表的改

    5.4、查

    a = ["a","b","g","c","d","c"]
    #切片去查,或者循环去查。
    其他操作:
    
    # count(数)(方法统计某个元素在列表中出现的次数)
    # print(a.count("a"))                      #输出:1
    # index(方法用于从列表中找出某个值第一个匹配项的索引位置)
    # print(a.index("c"))                      #输出:2
    # sort (方法用于在原位置对列表进行排序)。
    a.sort()
    print(a)                        #输出:  ['a', 'b', 'c', 'c', 'd', 'g']
    print(a.sort())                 #  None
    # reverse (方法将列表中的元素反向存放)
    a.reverse()
    print(a)                          # 输出: ['g', 'd', 'c', 'c', 'b', 'a']
    列表的查

     6、字典

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

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

    字典:存储数据多,关系型数据,查询速度快(二分查找)。
    3.6版本之前,字典是无序的,3.6之后字典是有序的。字典的key是唯一的。key 必须是不可变的数据类型。
        key:不可变的数据类型(可哈希):str,bool,tuple,int。
        value:任意数据类型。
    数据类型分类:
       不可变的数据类型(可哈希):str,bool,tuple,int
       可变的数据类型:dict,list,set。
       容器类数据类型:list,tuple,dict,set.
    View Code

     6.1、增

    #1、 setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。
    dic = {
        'name_list':['b哥', '张帝', '人帅', 'kitty'],
        'dadong':{
            'name':'dadong',
            'age': 46,
            'sex': 'ladyboy',
        },
    }
    dic.setdefault('k','v')
    print(dic)
    
    #2、dic['key1']='value1' ,有则替换,无则添加
    字典的增

    6.2、删

    1、 pop根据key删除键值对,并返回对应的值,如果没有key,则返回默认的返回值。
    dic_pop = dic.pop("name_list",'无返回值')
    print(dic_pop)              #输出:['b哥', '张帝', '人帅', 'kitty']
    print(dic)                  #输出:{'dadong': {'name': 'dadong', 'age': 46, 'sex': 'ladyboy'}}
    2、随机删除字典中某个键值对,将删除的键值对元组的形式返回。
    dic_pop1 = dic.popitem()
    print(dic_pop1)         #输出:('dadong', {'name': 'dadong', 'age': 46, 'sex': 'ladyboy'})
    3、clear 清空字典
    dic_clear = dic.clear()
    print(dic,dic_clear)          #输出:  {} None
    字典的删

    6.3、改

    dic1 = {'name':"jin","age":18,"sex":"male"}
    dic2 = {"name":"alex","wegint":75}
    dic2.update(dic1)  #将dic1所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中。
    print(dic2)          #输出:{'name': 'jin', 'wegint': 75, 'age': 18, 'sex': 'male'}
    字典的改

    6.4、查

    value = dic["name"]
    print(value)                #输出:报错   KeyError: 'name'
    print(value)               #输出:    ['b哥', '张帝', '人帅', 'kitty']
    
    value2 = dic.get("123","默认返回值")            #输出:默认返回值
    print(value2)
    字典的查

    6.5、字典的循环

    #字典的循环
    dic = {"name":"jin","age":18,"sex":"male"}
    for key in dic:
        print(key)        #输出:name age sex
    
    for item in dic.items():
        print(item)   #输出:('name', 'jin')  ('age', 18)  ('sex', 'male')
    
    for key,value in dic.items():
        print(key,value)  #输出内容:name jin  age 18  sex male
    字典循环

     7、练习题

    练习一:
    l1 = [1, 2, 'alex', 'wusir',['oldboy', 'ritian', 10], 'taibai']
    #1.将'alex'全部变成大写,放回原处
    #2.给['oldboy', 'ritian', 99]追加一个元素'女神'
    #3.将'ritian'首字母大写,放回原处
    #4.将10通过数字相加,或者字符串相加变成100
    
    # l1 = [1, 2, 'alex', 'wusir',['oldboy', 'ritian', 10], 'taibai']
    # l1[2]=l1[2].upper()
    # l1[4].append('女神')
    # l1[4][1]=l1[4][1].capitalize()
    # l1[4][2]=str(l1[4][2]+90)
    # print(l1)
    # l1[4][2]=int(l1[4][2])-90
    # l1[4][2]=str(l1[4][2])+'0'
    # print(l1)
    
    练习二:
    #######练习2###########
    dic = {
        'name_list':['东哥', '张帝', '人帅', 'kitty'],
        '大东':{
            'name':'dadong',
            'age': 46,
            'sex': 'ladyboy',
        },
    }
    #1,['大东', '张帝', '人帅', 'kitty']追加一个元素,'骑兵'
    #2,将kitty全部变成大写。
    #3,将老男孩 改成oldboy。
    #,将ladyboy首字母大写。
    # dic['name_list'].append('骑兵')
    # dic['name_list'][-2]=dic['name_list'][-2].upper()
    # dic['老男孩']['name']='oldboy'
    # dic['老男孩']['sex']=dic['老男孩']['sex'].capitalize()
    # print(dic)
    练习题
  • 相关阅读:
    apache和tomcat有什么不同,为什么要整合apache 和tomcat
    使用jstack分析cpu消耗过高的问题
    eclipse建立springMVC 简单项目
    JAVA中的反射机制
    MySQL索引的Index method中btree和hash的优缺点
    JAVA中的线程安全与非线程安全
    Java中普通代码块,构造代码块,静态代码块执行顺序
    jvm的内部体系结构浅析
    CPU思考
    linux内核调度算法(2)--CPU时间片如何分配 转!
  • 原文地址:https://www.cnblogs.com/dadonggg/p/8807281.html
Copyright © 2011-2022 走看看