麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

Python expandtabs()函數的使用

2023-04-26 12:04:41
字體:
來源:轉載
供稿:網友

Python中expandtabs()函數的作用是允許用戶自定義(擴展)字符串中 '/t' 字符輸出的空格數量。在Python中TAB制表鍵字符輸出的空格數量默認為8。該函數在處理輸出的空格數量時會把tab字符前邊的字符數考慮進去。也就是說實際輸出的空格數量是給定的tab的尺寸減去tab鍵前面的字符數量。

一、expandtabs()函數的語法格式

str.expandtabs(tabsize = 8)

str:待處理的字符串

參數:tabsize,指定tab的尺寸,默認為8個空白字符。

返回值:返回處理后的字符串。

二、expandtabs()函數使用示例

1、參數使用默認值

str1 = "R/tC#/tPHP/tPython"
print(str1)
res1 = str1.expandtabs()
print(res1)

輸出結果:

R       C#      PHP     Python
R       C#      PHP     Python

因為Python中tab的默認值為8,所有兩者輸出是相同的。

2、正常使用參數

str1 = "A/tBC/tDEF/tGHI"
print(str1)
res1  = str1.expandtabs(10)
print(res1)
res2 = str1.expandtabs(6)
print(res2)

輸出結果:

A       BC      DEF     GHI
A         BC        DEF       GHI
A     BC    DEF   GHI

在上面的輸出結果中第一行實際上默認使用的TAB的尺寸是8;

第二行,A和BC之間有9個空格,因為在第一個/t前有一個字母,所以10 -1 = 9,在BC和DEF之間有8個空格,因為在第2個/t前有兩個字母,10 -2 = 8;同理,在DEF和GHI之間應有7個空格。

用同樣的算法,可以推出第三行的A和BC之間應有6 -1 = 5個空格,BC和DEF之間應有 6 - 2 = 4個空格 ,DEF和GHI之間應有6 -3 = 3個空格。

另外,需要說明的是,/t前面的字符中有空格時,毫無疑問,空格也會作為字符計算在內,看下面的例子:

str1 = "Python is easy./tPython!"
print(str1)
print(str1.expandtabs(16))
print(str1.expandtabs(18))

輸出結果:

Python is easy. Python!
Python is easy. Python!
Python is easy.   Python!

因為str1本身有15個字符(含空格),所以tabsize為16時,實際上/t被處理成1(16-15=1)個空格,當為18時,/t被處理成3個空格(18-15 = 3)。而第1行的輸出中間也有一個空格,這是怎么回事呢?(請繼續看下面的內容。)

3、/t前面的字符多于指定的tabsize情況

在這種情況下,可以認為Python中expandtabs()函數按如下規則進行處理:

tabsize * n - m > 0 (m為/t前面的字符數量)

也就是說,指定的tabsize數乘以一個大于0的數后減去/t前面的字符數量的結果值需大于0,即至少有一個空白符。見下面的例子:

str1 = "PythonPython/tR"
print(str1.expandtabs(6))
print(str1.expandtabs(7))
print(str1.expandtabs(8))
print(str1.expandtabs(9))

輸出結果:

PythonPython      R
PythonPython  R
PythonPython    R
PythonPython      R

因為/t前面有12個字符,第1個 6 * 3 - 12 = 6 ,所以第1個輸出了6個空格,第2個 7*2 - 12 =2 ,所以第2個有2個空格,按照這樣的規則,第3個有 4 個空格,第4個有6個空格。

4、多個/t連續出現的情況

有時字符串中連著有多個/t情況,或者出現換行符/n的情況,這時,Python的expandtabs函數是如何處理的呢?

str1 = "C/tC#/t/tC++/t/nJava/tPython"
print(str1)
res1 = str1.expandtabs(12)
print(res1)

輸出結果:

C       C#              C++     
Java    Python
C           C#                      C++         
Java        Python

從上面輸出結果中,通過數空格數,可以知道,在連續的/t中,緊挨字符的/t是輸出減去前面字符數的空格數,而第2個/t會原樣輸出tab鍵規定數量的空格。注意:/t前面的/r,/n不會被當作一個字符來處理。

5、參數小于等于0或無效

如果tabsize參數指定為0或負數,甚至是小數會出現什么情況呢?看下面的例子:

>>> str1 = "武林網VEVB/twww.companysz.com"
>>> print(str1.expandtabs()) # 中間會有1個空格
武林網VEVB www.companysz.com
>>> print(str1.expandtabs(0)) # 輸出中間會沒有空格
武林網VEVBwww.companysz.com
>>> print(str1.expandtabs(-4))
武林網VEVBwww.companysz.com
>>> print(str1.expandtabs(-8))
武林網VEVBwww.companysz.com
>>> print(str1.expandtabs(2.3)) # 將導致TypeError錯誤:參數類型錯誤
Traceback (most recent call last):
    File "<pyshell#27>", line 1, in <module>
        print(str1.expandtabs(2.3))
TypeError: integer argument expected, got float

>>>

從以上輸出情況可以看出,expandtabs()函數把負數一律按0來處理,即不輸出空格,而給一個非整數參數時,將導致語法錯誤。

Python expandtabs函數

本文(完)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品99久久久久久久 | 日本68xxxx | 欧美三级欧美成人高清www | 精品国产一区二区三区久久久 | 一级国产精品一级国产精品片 | 欧美精品欧美 | 成人电影毛片 | 中文字幕视频在线播放 | 日本高清视频网站www | 亚洲成人国产综合 | 国产精品伊人久久 | 久久久久久久亚洲视频 | 黄色片一区二区 | 粉嫩粉嫩一区二区三区在线播放 | 一级网站片| 在线亚洲综合 | 国产妇女乱码一区二区三区 | 国产成人高清在线观看 | 国产精品成人一区二区三区电影毛片 | 一级黄片毛片免费看 | 日本免费一区二区三区四区 | 国产精品一区二区三区在线看 | 国产免费福利视频 | 色屁屁xxxxⅹ在线视频 | 看免费黄色一级片 | 2021免费日韩视频网 | 欧美1区2区在线观看 | 成人444kkkk在线观看 | 日韩在线欧美在线 | 婷婷久久久久久 | 激情亚洲一区二区 | 久久国产精品久久久久久久久久 | 草碰人人 | 叶子楣成人爽a毛片免费啪啪 | 国产女厕一区二区三区在线视 | 视频一区二区久久 | av在线免费看网址 | 黄色片网站在线免费观看 | 久久久久国产精品久久久久 | 色诱亚洲精品久久久久久 | 黄色片视频观看 |