zoukankan      html  css  js  c++  java
  • 《python基础教程》笔记之 字符串

    • 字符串格式化

    字符串格式化使用字符串格式化操作符即百分号%来实现。在%的左侧放置一个字符串(格式化字符串),而在右侧则放置希望格式化的值,可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或者字典,如

    >>> print "hello. %s.%s enough for ya?" % ('world', 'Hot')
    hello. world.Hot enough for ya?

    如果右操作数是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符。

    基本的转换说明符包括以下部分,注意,这些项的顺序是至关重要的。

    1. %字符:标记转换说明符的开始。

    2. 转换标志(可选):-表示左对齐;+表示在转换值之前要加上正负号;“”表示正数之前保留空格;0表示转换值若位数不够则用0填充。

    3. 最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出。

    4. 点(.)后跟精度值(可选):如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。

    5. 转换类型:见下表

    #使用给定的宽度打印格式化后的价格列表
    width = input('')
    price_width = 10
    item_width = width - price_width
    
    header_format = '%-*s%*s'
    format        = '%-*s%*.2f'
    
    print '-' * width
    
    print header_format % (item_width, 'Item', price_width, 'Price')
    
    print '-' * width
    
    print format % (item_width, 'Apples', price_width, 0.4)
    print format % (item_width, 'Pears', price_width, 0.5)
    print format % (item_width, 'Cantaloupes', price_width, 1.92)
    print format % (item_width, 'Dried Apricots(16 0z.)', price_width, 8)
    print format % (item_width, 'prunex(4 1bs)', price_width, 12)
    
    print '=' * width

    结果如下

    35
    -----------------------------------
    Item                            Price
    -----------------------------------
    Apples                         0.40
    Pears                          0.50
    Cantaloupes                 1.92
    Dried Apricots(16 0z.)     8.00
    prunex(4 1bs)               12.00
    =======================

    • 字符串方法

    find -- 在一个较长的字符串中找子字符串,它返回子串所在位置的最左端索引,未找到则返回-1。此方法还接收可选的起始点和结束点参数。

    >>> title = 'hello. world.Hot enough for ya?'
    >>> title.find('wor')
    7
    >>> title.find('wor', 2, 6)
    -1

    join -- 在队列中添加元素

    >>> seq = list('12345')
    >>> sep = '+'
    >>> sep.join(seq)
    '1+2+3+4+5'
    >>> dirs = '','usr','bin','env'
    >>> '/'.join(dirs)
    '/usr/bin/env'
    >>> 'C:'+'\'.join(dirs)
    'C:\usr\bin\env'

    lower -- 返回字符串的小写字母版

    replace -- 返回某字符串的所有匹配项均被替换之后得到的字符串。

    split -- 将字符串分割成序列

    >>> '1+2+3+4+5'.split('+')
    ['1', '2', '3', '4', '5']
    >>> '/usr/bin/env'.split('/')
    ['', 'usr', 'bin', 'env']
    >>> 'C:\usr\bin\env'.split('\')
    ['C:', 'usr', 'bin', 'env']

    strip  -- 返回除去两侧(不包括内部)空格的字符串,也可以指定需要去除的字符。

    >>> '++!**1+2+3+4+5*++'.strip('+!*')
    '1+2+3+4+5'

    translate -- 可以替换字符串中的某些部分,只处理单个字符,并且可以同时进行多个替换。第一个参数指定需要替换的表,第二个参数指定需要删除的字符。

    >>> from string import maketrans
    >>> table = maketrans('cs', 'kz')
    >>> 'This is an incredible test'.translate(table)
    'Thiz iz an inkredible tezt'

    >>> 'This is an incredible test'.translate(table, ' ')
    'Thizizaninkredibletezt'

  • 相关阅读:
    BZOJ1001 BJOI2006狼抓兔子(最小割+最短路)
    BZOJ4569 SCOI2016萌萌哒(倍增+并查集)
    Luogu4782 【模板】2-SAT 问题(2-SAT)
    BZOJ3626 LNOI2014LCA(树链剖分+主席树)
    BZOJ4012 HNOI2015开店(树链剖分+主席树)
    Luogu2264 树上游戏(点分治)
    BZOJ3998 TJOI2015弦论(后缀数组+二分答案)
    BZOJ1045 HAOI2008糖果传递(贪心)
    BZOJ1124 POI2008枪战Maf(环套树+贪心)
    洛谷 P4568 [JLOI2011]飞行路线 解题报告
  • 原文地址:https://www.cnblogs.com/qiantangbanmu/p/4303025.html
Copyright © 2011-2022 走看看