zoukankan      html  css  js  c++  java
  • Python 入门 Day5

    数据类型

    ======================================整型(int)======================================
    1、用途:存qq号,手机号,不带字母的身份证号...
    2、定义方式
    age = 18  # age = int(18)
        int('1.1')  # int只能转纯数字的字符串,小数点都不行
    3.进制转换
    其他进制转10进制
    二进制转十进制 0,1
    10 1*(2**1) + 0*(2**0) 2
    八进制转十进制 0-7
    235 2*(8**2) + 3*(8**1) + 5*(8**0)
    十六进制转十进制 0-9 A-F
    217 2*(16**2) + 1*(16**1) + 7*(16**0)
            print(int('1100',2))  int可以传第一个参数,表示的是第一个参数到底是什么进制  然后转成十进制
            print(int('14',8))  八进制
            print(int('c',16))  十六进制
    10进制转其他进制
        10进制转二进制
            print(bin(12))  # 0b1100  0b表示后面的数字是二进制数
        10进制转八进制
            print(oct(12))  # 0o14  0o表示后面的数字是八进制数  14 >>> 1*(8**1) + 4*(8**0))
        10进制转16进制
            print(hex(12))  # 0xc  0x表示后面的数字是十六进制数

    总结:
    存一个值
    有序or无序
    有序:但凡有索引的数据都是有序的
    不可变
    可变类型与不可变类型
    可变类型:值改变的情况下,id不变,说明你改的是原值
    不可变类型:值改变的情况下,id一定变
                    x = 10
                    print(id(x))
                    x = 11
                    print(id(x))
    ===================================================================================

    ======================================字符串======================================
    1、用途:描述性
    2、定义方式:''," ", """ """
    s = 'hello baby'  # str('hello baby')
     s1 = str([1,2,3,4])
     print(type(s1))
     s2 = str({'name':'jason','password':123})
     print(type(s2))只要是被“”引起来的东西都是字符串
    1、按索引取值(正向取+反向取) :只能取
     s = 'hello big baby~'
     print(s[0])
    2、切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串
    左边的固定就是头,右边固定就是位 没有说按数字来分头尾
       print(s[0:5])     # hello
         print(s[0:10:1])  # hello  步长不写默认是1
         print(s[0:10:2])  # 步长表示隔几个取一个
    了解负数取值
         print(s[-1])
         print(s[0:5:-2])  # 切片取值默认是从左往右的
         print(s[5:0:-1])  # 切片取值默认是从左往右的
         print(s[-1:-10:-1])
    3、长度len:统计的是字符串中字符的个数
    s1 = ' '
    print(len(s1)) >>>1
    4、成员运算in和not in: 判断一个子字符串是否存在于一个大的字符串中
     print('egon' in 'egon is dsb and egon is sb')  
    >>>True print('g' in 'egon is dsb and egon is sb')
    >>>True print('jason' not in 'egon is dsb and egon is sb')
    >>>True
    5、去掉字符串左右两边的字符strip,不管中间的
    username = input('>>>:').strip()
     strip()默认去除字符串首尾的空格
    使用内置的方法统一采用 句点符(.)
    name1 = 'jason'
    name2 = '   jason   '.strip()
    print(name1 == name2)  
    >>>True name3 = '$$$$$eg$on$$$$' print(name3.strip('$'))
    >>>eg$on
    了解即可
    name4 = '% ¥#jason&*)'
    print(name4.strip('% ¥#)')) >>>jason&*
        rstrip() lstrip()
    name5 = '$$$$jason$$$$'
    print(name5.lstrip('$'))  >>>jason$$$$ # left左边
    print(name5.rstrip('$'))  >>>$$$$jason # right右边
    6、切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值
        data = 'jaso n|123| handsome'
        print(data.split('|'))
    
        >>>['jaso n', '123', ' handsome']
     解压赋值
    username,password,info = data.split('|')
    print(username,password,info)
    
    >>>jaso n 123  handsome
     强调:split切分出来的数据类型是一个列表
        print(data.split('o'))  # 切割的顺序其实从左往右的
        print(data.split('o',1))  # 切割的顺序其实从左往右的
        print(data.rsplit('o',1))  # 切割的顺序其实从左往右的
    
        >>>['jas', 'n|123| hands', 'me']
        >>>['jas', 'n|123| handsome']
        >>>['jason|123| hands', 'me']
     如果不指定那么split和rsplit效果是一样

    7、循环
    for i in data:
        print(i)
    ============================================================================
    需要你掌握的
    1、strip,lstrip,rstrip
    2、lower,upper
         s = 'JaS1oN'
         res = s.lower()  小写
         print(res)
         print(s)
         print(s.upper()) 大写
         print(s)
    
         >>>jas1on
         >>>JaS1oN
         >>>JAS1ON
         >>>JaS1oN

    调用字符串的方法并没有改变字符串本身
    3、startswith,endswith
     s1 = 'egon is dsb'
     print(s1.startswith('e'))  # 判断字符串是否以什么什么开头
     print(s1.endswith('n'))  # 判断字符串是否以什么什么结尾
    
    
    4、format的三种玩法(python推荐使用format做格式化输出)
     第一种  按位置占位   跟%s原理一致
     str1 = 'my name is {} my age is {}'.format('jason',18)
     str1 = 'my name is {} my age is {}'.format(18,'jason',)
     print(str1)
     第二种  按索引占位
     str1 = 'my {1} name is {0} my {0} age is {0}'.format('egon',18)
     print(str1)
     第三种  指名道姓占位(关键字传参)
     str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='jason',age=18)
     print(str1)
    
    5、split,rsplit
    6、join
     data = 'jason|123|handsome'
     res_list = data.split('|')
     print(res_list)
    
     res_str = '$'.join(res_list)  # 将容器类型中的多个元素通过指定字符拼接成一个字符串
     print(res_str)
     l = ['1','a','b']
     res = '|'.join(l)
     print(res)
    
    7、replace
     str = 'egon is dsb and egon is sb he has a BENZ'
     res = str.replace('egon','kevin',1)
     print(res)
     print(str)
    
    
    8、isdigit # 判断字符串中包含的是否为纯数字
     while True:
         age = input('>>>:')
         if age.isdigit():
            age = int(age)
             if age > 28:
                print('阿姨好')
        else:         print('你他妈的能不能好好输')
     需要了解的内置方法
    1、find,rfind,index,rindex,count
        s = 'kevin is dsb o and kevin is sb'
         print(s.find('dsb'))  # 返回的是d字符所在的索引值
         print(s.find('xxx'))  # 找不到的时候不报错返回的是-1
         print(s.find('i',0,3))  # 还可以通过索引来限制查找范围
         print(s.index('o'))  # 返回所传字符所在的索引值
         print(s.index('i',0,3))  # 返回所传字符所在的索引值
         print(s.count('n'))  # 统计字符出现的次数
    
    2、center,ljust,rjust,zfill
        s9 = 'jason'
         print(s9.center(12,'*'))
         print(s9.ljust(40,'$'))
         print(s9.rjust(40,'$'))
         print(s9.rjust(40,' '))
         print(s9.zfill(40))
    
    3、expandtabs
    
         s10 = 'a	bc'
         print(s10.expandtabs(100))
    
    4、captalize,swapcase,title
    
         s12 = 'hElLo WoRLD sH10'
         print(s12.capitalize())  # Hello world 首字母大写
         print(s12.swapcase())  # 大小写互换
         print(s12.title())  # 每个单词的首字母大小
    
    5、is数字系列
    
        num1=b'4' #bytes
        num2=u'4' #unicode,python3中无需加u就是unicode
        num3='' #中文数字
        num4='' #罗马数字
         ''.isnumeric(): unicode,中文数字,罗马数字    只要是表示数字都识别
    
        print(num2.isnumeric())
        print(num3.isnumeric())
        print(num4.isnumeric())
    
         ''.isdecimal(): unicode   只识别普通的阿拉伯数字
    
        print(num2.isdecimal())
        print(num3.isdecimal())
        print(num4.isdecimal())
    
         ''.isdigit() :bytes,unicode    通常情况下使用isdigit就已经满足需求了
    
        print(num1.isdigit())
        print(num2.isdigit())
        print(num3.isdigit())
        print(num4.isdigit())
    3、常用操作+内置的方法
    ======================================该类型总结====================================
    存一个值
    有序(有序:但凡有索引的数据都是有序的)
    不可变类型
    ======================================列表(list)======================================
    作用:多个装备,多个爱好,多门课程,多个女朋友等
    定义:[]内可以有多个任意类型的值,逗号分隔
    my_girl_friends=['alex','wupeiqi','yuanhao',4,5] #本质my_girl_friends=list([...])
    
         l=list('abc')
         l1=list({'name':'jason','password':'123'})
         print(l1)
    
         >>>['name', 'password']
     list内部原理就是for循环取值 然后一个个塞到列表中去
    
    优先掌握的操作:
    1、按索引存取值(正向存取+反向存取):即可存也可以取
         l = [1,2,3,4]
            print(l[0:4:1])
            print(l[0::])
            print(l[5::-1])
            print(id(l))
         l[0] = 69
            print(id(l))
            print(l)
    
         >>>[1, 2, 3, 4]
         >>>[1, 2, 3, 4]
         >>>[4, 3, 2, 1]
         >>>2898563605512
         >>>2898563605512
         >>>[69, 2, 3, 4]
    2、切片(顾头不顾尾,步长)
        l = [11,22,33,44,55]
        l1 = [99,88,77,66]
    
             l.append(66)  # 注意append值能将被添加的数据当作列表的一个元素
             print(l)
    
    2.任意位置添加元素
         l.insert(2,96)  # 通过索引在任意位置添加元素
         print(l)  # 注意insert值能将被添加的数据当作列表的一个元素
    
    3.添加容器类型数据
         l.append(l1)
         l.insert(-1,l1)
         l.extend(l1)  # 内部原理for循环l1一个个追加到列表的尾部
         l.extend([1,])
         print(l)
    
    3、长度
        print(len(l))
    
    4、成员运算in和not in
        print( 444 in l)
    
    5、往列表中添加元素(******)
     append
     insert
     extend
    
    6、删除
         print(l)
         del l[2]  # del适用于所有的删除操作
         print(l)
    
         res1 = l.pop()  # 尾部弹出
         res2 = l.pop()
         res3 = l.pop()
         print(res1,res2,res3)
    
         res1 = l.pop(0)  # 可以指定索引 按照索引弹出元素
         print(res1)
    
         res = l.remove(33)  # 指定要删除的元素的值
         print(l)
         print(res)
    
         s = 'haha'
         print(s)
         del s
         print(s)
    7、循环
        for i in l:
            print(i)
    ======================================列表(list)======================================
     
    趁自己还没死 多折腾折腾
  • 相关阅读:
    React中的PropTypes详解
    mobile 更改hosts
    sed用例
    Centos 7 开启端口
    node-gyp rebuild 卡住?
    录制客户端脚本
    创建删除表空间以及表空间使用情况查询
    oracle 修改字符集 修改为ZHS16GBK
    linux中压缩、解压缩命令详解
    jps、jstack、jmap、jhat、jstat、hprof使用详解
  • 原文地址:https://www.cnblogs.com/lddragon/p/11126809.html
Copyright © 2011-2022 走看看