• Python学习之路3


    本节内容:

    • 常用的字符串处理。
    • 格式化输出字符串。
    • 字符串的替换。
    • 字符串和二进制的相互转化。
    • 字典的操作

    字符串操作 

    常用的字符串处理

    name = 'vector'
    
    print(name.capitalize()) # 首字母大写
    print(name.count('e')) # 判断字符e在字符串中有多少个
    print(name.center(50,'-')) # 一共打印50个字符,将vector放在中间,两边用-填充
    print(name.endswith('r')) # 判断字符串以什么结尾, 如果是以r结尾则返回true
    print(name.expandtabs(tabsize=10)) # 如果在字符串中加入	,则在该位置上加入tabsize个空格
    print(name.find('ec')) # 找到e在字符串中的位置
    print(name.isalnum()) # 如果字符串里面只包含英文和数字, 则返回True
    print(name.isalpha()) # 如果字符串里面是纯英文, 则返回True
    print(name.isdecimal()) # 如果字符串是十进制数字, 则返回True
    print(name.isdigit()) # 如果字符串是否为整数, 则返回True
    print(name.isidentifier()) # 判断是否是一个合法的标识符(变量名), 合法则返回True
    print(name.islower()) # 判断是否为小写, 是则返回True
    print(name.isupper()) # 判断是否为大写, 是则返回True
    print(name.isspace()) # 判断是否为空格, 是则返回True
    print('My Name Is'.istitle()) # 判断是否为标题(首字符大写), 是则返回True
    print('+'.join(['1','2','3'])) # 将列表里面的每个元素用'+'拼接起来
    print(name.ljust(50,"*")) # 如果字符串长度小于50, 则不够的在左侧用*补充
    print(name.rjust(50,"*")) # 如果字符串长度小于50, 则不够的在右侧用*补充
    print(name.lower()) # 将大写变成小写
    print(name.upper()) # 将小写变成大写
    print('
    vector'.lstrip()) # 去掉字符串左边的空格和回车
    print('vector
    '.rstrip()) # 去掉字符串右边的空格和回车
    print('
    vector
    '.strip()) # 去掉字符串两边的空格和回车
    print('name is a book'.rfind('a')) # 从右边开始找a,返回找到的位置
    print('name is a book'.split(' ')) # 将字符串按照空格为界分装成列表, 不写参数则分隔符默认为空格
    print('name is 
    a book'.splitlines()) # 将字符串根据换行符为界分装成列表
    print('name is a book'.swapcase()) # 大小写互换
    print('name is a book'.title()) # 将字符串变成标题(首字母大写)
    print('name'.zfill(50)) # 如果字符串不够50个,则在左边用0填充
    

    格式化输出字符串

    name = 'vector {name} {age}'
    print(name.format(name = 'rev',age=123)) # 格式化字符串
    print(name.format_map({'name':'rev','age':123})) # 字典的形式格式化字符串
    

    字符串替换

    #先用maketrans设置替换规则, 然后用translate执行替换
    p = str.maketrans('asdfgn','123456') #第一个参数是被替换的字符,第二个参数是替换的字符
    print('name'.translate(p)) # 将规则p传入,打印出来的就是61me,因为n和a被6和1替换掉了
    
    print('name'.replace('n','b',1)) # 将n换成b,第三个参数表示替换几个,如果不写则默认全部替换
    

    字符串和二进制的相互转化

    msg = '我爱大延边日不落帝国'
    print(msg) # 字符串输出
    print(msg.encode(encoding='utf-8')) # 将字符串转换成二进制
    print(msg.encode(encoding='utf-8').decode(encoding='utf-8')) # 将二进制转换成字符串
    encode参数表示之前是什么格式的,decode参数表示要转换成什么格式的。
    如果encode和decode不写参数,默认就是utf-8。

    字典

    字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

    字典的特性:

    • dict是无序的
    • key必须是唯一的,so 天生去重

    语法:

    info = {
        'str1':'zhangsan',
        'str2':'lisi',
        'str3':'wangwu',
        'str4':'zhaoliu'
    }
    

    常见的字典操作:

    info = {
        'str1':'zhangsan',
        'str2':'lisi',
        'str3':'wangwu',
        'str4':'zhaoliu'
    }
    
    print(info) # 打印全部字典
    print(info['str2']) # 根据键名打印字典元素
    info['str1'] = 'yangzirui' # 这样就会修改值, 如果键名不存在则会直接创建
    del info['str2'] # 删除该元素
    info.pop('str2') # 这也是删除
    print(info.popitem()) # 随机删除一个, 并返回他的键值对
    print(info['str1']) # 打印数据, 如果键名不存在, 就会报错,不推荐用
    print(info.get('str2')) # 打印数据, 如果键名不存在, 则返回none, 推荐
    print('str1' in info) # 判断键名是否存在,存在打印true,否则打印false
    aaa = info.setdefault('str5','liangsohohfefho') # 如果info里面有键为str5的,则直接返回对应的值;如果没有,则创建后返回对应的值
    
    a = {
        'str1':'asdfsdfd',
        1:2,
        2:3
    }
    info.update(a) # 将字典a合并到info中,如果有交叉,则用a字典中的值
    info.items() # 将字典转成列表, 列表中的每个元素都由元组组成,每个元组又原字典的每个键值对组成
    
    c = dict.fromkeys([1,2,3],'test') # 创建一个新字典, 键为1,2,3, 值均为test, 如果不写值,则均为none;后面赋的值是三个键共有的, 所以改一个就全都改了
    

    循环字典:

    info = {
        'str1':'zhangsan',
        'str2':'lisi',
        'str3':'wangwu',
        'str4':'zhaoliu'
    }
    #第一种循环方法
    for i in info:
        print(i,info[i])
    # 这应该是最基本的循环了
    
    # 第二种循环方法
    for k,v in info.items():
        print(k,v)
    # 这种循环方式的效率没有第一种循环效率高,因为这种需要将字典转换成列表
    

    输出结果:(两种循环方式均是这样)

  • 相关阅读:
    有36辆自动赛车和6条跑道,没有计时器的前提下,最少用几次比赛可以筛选出最快的三辆赛车?----腾讯2016研发工程师在线模拟笔试题
    10G个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可
    计算机网络总结(二)
    计算机网络总结(一)
    最小编辑距离
    寻找两个有序数组的中位数
    Linux下几款C++程序中的内存泄露检查工具
    DDIA
    推荐引擎
    Innodb中的事务隔离级别和锁的关系
  • 原文地址:https://www.cnblogs.com/vector121/p/7552026.html
Copyright © 2020-2023  润新知