• python基础(三)-数据类型与内置方法1


    今日内容

    数据类型

    (1)整型(INT)

    ‘’‘int只能转纯数字的字符串,小数点都不行’‘’

    存一个值且有序:但凡有索引的数据都是有序的。

    进制转换

      10进制转二进制:print(bin(12)) 0b1100 0b表示后面的数字时二进制数

      10进制转八进制:print(oct(12)) 0o14 0o表示后面的数字时八进制数

      10进制转16进制:print(hex(12)) 0xc 0x表示后面的数字是16进制

      print(int(‘1100’,2)) ’‘’转二进制‘’‘

      print(int(‘14’,8)) ’‘’转8进制’‘’

      print(int(‘c’,16)) ‘’‘转16进制’‘’

    可变类型与不可变类型

    • 可变类型:只改变的情况下,id不变,说明你改的是原值。
    • 不可变类型:值改变的情况下,id一定改变。
    x = 10
    print(id(x))
    x = 11
    print(id(x))

    (2)浮点型

    作用例子:薪资 身高 体重

    salary = 1.1 float(1.1)
    
    res = float(‘1.11’)
    
    print(type(res)) ‘’‘float’‘’

    (3)字符串型

    存一个值;不可变型;

    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]) ‘’‘h’‘’
    按索引取值
    • 2.切片操作(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串,左边是头,右边是尾,并且不是按数字来分头尾的
    s = ‘hello big baby’
    
    print(s[0:5]) ‘’‘hello’‘’
    
    print(s[0:10:1]) ‘’‘hello big 步长默认是1’‘’
    
    print(s[0:10:2]) ‘’‘步长表示隔几个取一个‘’‘
    切片操作
    • 3.了解复数取值
    s = ‘hello big baby’
    print(s[-1])
     ‘’‘无’‘’
    print(s[0:5:-2])
     ‘’‘-2是步长,’无‘ 切片取值默认是从左往右的’‘’
    print(s[5:0:-1]) 
    ‘’‘-1是步长, ’ olle‘ 此切片取值为从右往左’‘’
    print(s[-1:-10:-1]) 
    ‘’‘ybab gib ’‘’
    复数取值
    • 4.长度len:统计的是字符串中字符的个数
    s1 = ‘ ’
    print(len(s1)) 
    ''' 1 '''
    • 5.成员运算in和not in:判断一个子字符串是否存在于一个大的字符串中
    print(‘zkj’ in ‘zkj is wd and zkj is godman’)
    print(‘k’ in ‘zkj is wd and zkj is godman')
    print(‘jason’ not in ‘zkj is wd and zkj is godman’)
    • 6.去掉字符串首尾的空格,不管中间的,用 .strip()
    username = input('>>>:').strip()
    if username == 'jason':
        print('good job')
    ‘’‘strip()默认去除字符串首尾的空格
    rstrip()去除右边的空格;lstrip()去除左边空格
    使用内置的方法统一采用 句点符 ( . )
    ’’‘
    name1 = ‘jason’
    name2 = ‘ jason ’.strip()
    print(name1 == name2)
    ’‘’ ‘jason’ == ‘ jason ‘ ’‘’
    
    name3 = ‘$$$$egon$$$$’
    print(name3.strip(‘$’))
    ‘’‘ ’egon’ ‘’‘
    
    name4 = ‘% $&jason@*)’
    print(name4.strip(‘% $&@*)’))
    ’‘’ ‘jason’ ‘’‘
    去掉字符串首尾空格,不管中间的,用.strip()
    • 7.切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成成列表,进而进行取值
    data = ‘jason|123|handsome’
    print(data.split(‘ | ’))
    username,password,info = data.split(‘ | ’)
    print(username,password,info)
    
    '''[ ’jason‘,‘123’,‘handsome’ ]'''

    ‘’‘强调:split切分出来的数据类型是一个列表’‘’

    data = ‘jason|123|handsome’
    print(data.split( j ))
    '''split切割的顺序其实是从左往右的'''
    print(data.split(‘o’,1)) 
    ''' [‘jas’,‘n|123|hands’,‘me’] '''
    print(data.rsplit(‘o’,1)) 
    '''这次是从右往左,依照’0‘切割,不过只切割第一个‘o’ '''
    print(data.split('o',2)) 
    '''这次是从左往右,依照’0‘切割,不过要切割从左往右数第一个‘o’和 第二个‘o’ '''
    '''如果不指定,那么split和rsplit效果是一样的'''
    • 8.循环
    data = ‘jason |123|handsome’
    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.stratswith(‘ j ’)) 
    '''False'''
    print(s1.stratswith(‘e’))
    '''True'''
    
    '''判断字符串是否以XXX开头'''
    
    print(s1.endswith(‘n’)) 
    '''True'''
    
    '''判断字符串是否以XXX结尾'''
    startswith,endswith

    4.format的三种玩法(python推荐使用format格式化输出)

    ’‘’第一种 按位置占位‘’‘

    str1 = ‘my name is { } my age is { }’ .format(‘jason’,18)
    str1 = ‘my name is { } my age is { }’ .format(18,‘jason’)
    print(str1)
    '''my name is jason my age is 18
    my name is 18 my age is jason
    '''

    ‘’‘第二种 按索引占位’‘’

    str1 = ‘my {1} name is {0} my {0} age is {0}’ .format(‘egon’,18)
    print(str1)
    '''my 18 name is egon my egon age is egon'''

    ‘’‘第三种 指名道姓占位(关键字传参)’‘’

    str1 = ’my {name} name is {age} my {name} age is {name}‘ .format(name=‘jason’,age=18)
    print(str1)
    '''my jason name is 18 my jason age is jason'''

    5.split、lsplit、rsplit

      上面已经说过了。

    6.join(将容器内的多个元素通过指定的字符拼接成一个字符串)

    data = ‘jason|123|handsome’
    res_list = data.split(‘ | ’)
    print(res_list)
    res_str = ‘$’.join(res_list)
    print(res_str)
    
    '''[’jason’,‘123’,‘handsome’]
    jason$123$handsome
    '''

    7.replace

    str = ‘egon is dsb and egon is sb he has a BENZ’
    res1 = str.replace(‘egon’,‘kevin’,1)
    res2 = str.replace(‘egon’,‘kevin’,2)
    print(res1)
    print(res2)
    print(str)
    
    '''kevin is dsb and egon is sb he has a BENZ
    kevin is dsb and kevin is sb he has a BENZ
    egon is dsb and egon is sb he has a BENZ
    '''

    8.isdigit(判断字符串中包含的是否为纯数字)

    while True:
        age = input('>>>:')
        if age.isdigit():
            age = int(age)
            if age > 28:
                print('阿姨好')
        else:
            print('你他妈的能不能好好输')
            break

    ‘’‘需要了解的内置方法’‘’

    1.find,rfind,index,rindex,count

    s = ‘kevin is dsb and kevin is sb’
    print(s.find(‘dsb’)) 
    '''返回的是d字符所在的索引值'''
    print(s.find(‘XXX’))
    '''找不到的时候不报错且返回的是-1'''
    print(s.find(‘i’,0,3))
    '''还可以通过索引来限制查找范围'''
    s = ‘kevin is dsb 0 and kevin is sb’
    print(s.index(‘o’))
    '''返回所传字符所在的索引值 13'''
    print(s.index(‘and’))
    '''返回所传字符所在的索引值 15'''
    print(s.index(‘i’,0,3))
    '''顾头不顾尾,在0,1,2中寻找不到则直接报错'''
    View Code

    s = ‘kevin is dsb 0 and kevin is sb’

    print(s.count(‘n’)) ‘’‘统计字符出现的次数‘’’

    2.center,ljust,rjust,zfill

    s9 = ‘jason’
    print(s9.center(11,‘$’)) 
    '''$$$jason$$$'''
    print(s9.ljust(11,‘$’))
    '''jason$$$$$$$$$$$'''
    print(s9.rjust(11,‘$’)) 
    '''$$$$$$$$$$$jason'''
    print(s9.rjust(11,‘ ’)) 
    ''' jason'''
    print(s9.zfill(40)) 
    '''00000000.......00000000000jason'''

    3.expandtabs

    s10 = ‘a	bc’
    print(s10.expandtabs(100))
    
    '''a bc,空格被拓展了
    
    或者
    、
       回车换行
    '''

    4.captalize,swapcase,title

    s12 = ‘hElLo WoRLD sH10’
    print(s12.capitalize())
    '''Hello world sh10首字母大写'''
    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())
    is数字系列

    (4)列表类型

    ‘’‘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)
    按索引存取值

    2.切片(顾头不顾尾,步长)

    l = [11,22,33,44,55]
    l1 = [99,88,77,66]
    '''尾部添加一个66'''
    l.append(66)
    '''注意append值能将被添加的数据当作列表的一个元素'''
    print(l)
    '''l = [11,22,33,44,55,66]'''
    '''任意位置添加元素'''
    l.insert(2,96)
    '''通过索引在任意位置添加元素'''
    print(l)
    '''注意insert值能将被添加的数据当作列表的一个元素'''
    '''添加容器类型数据'''
    '''l.append(l1)
    l.insert(-1,l1)
    l.extend(l1) ‘’内部原理for循环l1一个个追加到尾部
    '''
    l = [11,22,33,44,55]
    l.extend([1,])
    print(l)
    '''[11, 22, 33, 44, 55, 1]'''
    切片操作

    3.长度

    print(len(l))

    4.成员运算in和not in

    print(444 in l)
    '''True或者False'''

    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)
  • 相关阅读:
    sql批量插入数据测试
    服务器远程桌面连接显示内存不足无法完成解决
    SQL Server 2008 R2占用内存越来越大两种解决方法
    .net core 用引用log4net 写入日志
    用vscode开发,建议安装的插件大全
    关于如何添加windows的性能计数器
    VScode创建Vue项目,报错:vue : 无法加载文件 C:UsersxxxAppDataRoaming pmvue.ps1
    EFCore-脚手架Scaffold发生Build Failed问题的终极解决
    springboot 事务回滚
    JDK11.0.7下载及安装详细教程(win10)
  • 原文地址:https://www.cnblogs.com/zhukaijian/p/11128937.html
Copyright © 2020-2023  润新知