6 Python指令碼學習筆記六字串

2021-08-10 14:48:21 字數 4013 閱讀 1419

6. python指令碼學習筆記六字串

本篇名言:「心存夢想,機遇就會籠罩著你;心存希望,幸福就會降臨於你;心存堅持,快樂就會常伴你;心存真誠,平安就會跟隨你;美麗的生活由心而定!」

來看下python下的字串。使用%

來格式化字串,如下示例。

>>> format="hello. %s. %senough for ya?"

>>> values=('world','hot')

>>> print format % values

hello. world. hot enough for ya?

此外string

模組提供另一種格式化值的方法:模板字串。

如下圖示例:

>>> from string import template

>>> s=template('$x,glorious $x!')

>>> s.substitute(x='slurm')

'slurm,glorious slurm!'

如果本身來$符號,就需要輸入連續的兩個$$來表示。

格式化操作符的右操作可以是任何東西,如果是元組或者對映型別,那麼字串格式化會有所不同。

>>> 'price of eggs:$%d' % 23

'price of eggs:$23'

>>> 'hexadecimal price of eggs: %x' % 23

'hexadecimal price of eggs: 17 '

>>> from math import pi

>>> 'pi: %f ...' % pi

'pi: 3.141593 ...'

>>> 'very inexact estimate of pi:%i' % pi

'very inexact estimate of pi: 3'

>>> 'using str: %s' % 42l

'using str: 42'

>>> 'using repr: %r' % 42l

'using repr: 42l'

轉換說明符號,可以包括字段寬度和精度。

寬度是轉換後的值所保留的最小字元個數,精度是結果中應該包含的最小位數。

>>> from math import pi

>>> '%10f' % pi

' 3.141593'

>>> '%10.2f' % pi

'     3.14'

>>> '%.2f' % pi

'3.14'

>>> '%.5s' % 'guido van rossum'

'guido'

可以使用*作為字段寬度或者精度(或者兩者都使用*),此時數值會從元組引數中讀出:

>>> '%.*s' % (5,  'guido van rossum')

'guido'

字段寬度和精度之前還可以放置乙個「標表」,該標表可以是零,加號,減號或空格。

>>> '%010.2f' % pi

'0000003.14'

這裡的0開頭不是表示八進位制數。

左對齊數,如下,使用-符號來進行左對齊

>>> '%-10.2f' % pi

'3.14     '

在整數前加空格

>>> '% 5d' % 10

'  10'

>>> '% 5d' % -10

' -10'

# print a formatted price list with a given width

width = input('please enter width: ')

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, 'pears', price_width, 0.5)

print format % (item_width, 'cantaloupes', price_width, 1.92)

print format % (item_width, 'dried apricots (16 oz.)', price_width,8)

print format % (item_width, 'prunes (4 lbs.)', price_width, 12)

print '=' * width

輸入乙個寬度,格式化水果**的**

主要是使用-實現左對齊,使用』%.2f』來實現保留2個小數。

輸出:pleaseenter width: 35

***********************************

item                          price

-----------------------------------

pears                          0.50

cantaloupes                    1.92

driedapricots (16 oz.)        8.00

prunes(4 lbs.)               12.00

字串從string模組中繼承了很多方法,有很多的方法,列舉特別有用的一些方法。

查詢子字串。

>>> 'with a moo-moo here. and amoo-moo there'.find('moo')

返回字串所在的最左邊的索引。

是split方法的逆方法。

需要新增的佇列元素都必須是字串。

>>> seq=['1','2','3','4','5']

>>> sep='+'

>>> sep.join(seq)

'1+2+3+4+5'

可以用於路徑如下圖:

>>> dirs='','usr','bin','env'

>>> '/'.join(dirs)

'/usr/bin/env'

返回字串的小寫字母版

>>>'abcde'.lower()

'abcde'

此外還有title方法,可以變成主題。

替換某字串的所有匹配項。

>>> 'this is atest'.replace('is','eez')

'theez eez a test'

是join的逆方法。用來將字串分隔成序列。

>>>'1+2+3+4+5'.split('+')

['1','2', '3', '4', '5']

去除兩側(不包括內部)的空格的字串

>>> '            internal withspace is kept     '.strip()

'internal withspace is kept'

可以加入引數,指定要去除的字元

類似replace方法,不過只處理單個字元。可以配合string模組裡面的maketrans函式。

使用maketrans來建立用於轉換的表,如下實現將英語轉換成德語。

就是cs 裝換成kz。

>>> from string import maketrans

>>> table=maketrans('cs','kz')

>>> table[97:123]

'abkdefghijklmnopqrztuvwxyz'

>>> 'this is an incredibletest'.translate(table)

'thiz iz an inkredible tezt'

筆記 6 Python學習 函式

def 函式名 呼叫 函式名 乙個函式引數 def second name print name 我愛你!second 花花 花花我愛你!多個函式引數 def add num1,num2 result num1 num2 print result add 1,2 3函式的返回值return def ...

6 Python學習筆記 列表,元祖

列表 列表建立 var 1,2,3 列表訪問 索引以及切片訪問列表的區域性內容 列表的修改 1 可以通過索引切片的方式修改列表中已經存在的元素 刪除元素 del var 通過索引刪除元素 列表的方法 extend seq 將seq序列的每乙個元素依次追加到列表末尾 pop index 彈出指定索引位...

6 python學習之執行python的方式

python的直譯器 使用python 2.x直譯器 python py 使用python 3.x直譯器 python3 py 其他直譯器 知道 python的直譯器如今有多個語言的實現,包括 1 互動式執行python的優缺點 優點缺點 2 退出官方的直譯器 1 直接輸入exit exit 2 使...