Python3字符串
?
字符串是Python中最常用的數據類型,可以使用單引號或雙引號來創建字符串
創建字符串很簡單,為變量分配一個值即可。
val1 = ‘hello world’ var2 = “Runoob”Python訪問字符串的值
Python不支持單字符類型,單字符在Python中也是作為 一個字符串使用
Python訪問子字符串,可以使用方括號來截取字符串,如下:
/*** string.py ***/ var1 = 'hello world' var2 = "runoob"print ("var1[0]: ",var1[0]); print ("var2[1:5]: ",var2[1:5])運行結果:
robot@ubuntu:~/wangqinghe/python/20190822$ python3.5 string.py
var1[0]:? h
var2[1:5]:? unoo
?
Python字符串更新
可以截取字符串的一部分和其他字段拼接,如下:
?
?
?
Python轉義字符
在需要在字符中使用特殊字符,python用反斜杠轉義字符
| 轉義字符 | 描述 |
| \(在行尾) | 續行符 |
| \\ | 反斜杠符 |
| \’ | 單引號 |
| \” | 雙引號 |
| \a | 響鈴 |
| \b | 退格(space) |
| \000 | 空 |
| \n | 換行 |
| \v | 縱向制符表 |
| \t | 橫向制符表 |
| \r | 回車 |
| \f | 換頁 |
| \oyy | 八進制,yy表示字符, |
| \xyy | 十六進制,yy表示字符 |
| \other | 其他的字符以普通格式輸出 |
?
Python字符串運算符
| 操作符 | 描述 |
| + | 字符串連接 |
| * | 重復輸出字符串 |
| [] | 通過索引獲取字符串中字符 |
| [:] | 截取字符串一部分,遵循左閉右開原則 |
| in | 成員運算符—如果字符中包含給定的字符返回true |
| not in | 成員運算符—如果字符中不包含給定的字符返回true |
| r/R | 原始字符串—原始字符串:所有的字符串都是直接按照字面意思來使用,沒有轉義特殊或不能打印的字符。原始字符串除在字符串的第一個引號前加上字母r(R)以外,與普通字符串有著幾乎完全相同的語法 |
| % | 格式化字符串 |
運行結果:
robot@ubuntu:~/wangqinghe/python/20190822$ python3.5 archi.py
a + b is :? hellopython
a * 2 is :? hellohello
a[1] is :? e
a[1:4] is :? ell
h in a is true
m not in a is true
\n
\n
?
Pyt字符串格式化
Python支持格式化字符串輸出,盡管這樣可能會用到非常復雜的表達式,但是最基本的用法就是將一個值插入到一個有字符串格式符%s的字符串中
在Python中,字符串格式化使用與C中的sprintf函數一樣的語法
print (“我叫 %s 今年 %d 歲!“ (‘小明’,10))
?
Python字符串格式化符號
| 符號 | 描述 |
| %c | 格式化字符及其ASCII碼 |
| %s | 格式化字符串 |
| %d | 格式化整數 |
| %u | 格式化無符號整型 |
| %o | 格式化無符號八進制數 |
| %x | 格式化無符號十六進制數 |
| %X | 格式化無符號十六進制數(大寫) |
| %f | 格式化浮點數,可指定小數點后的精度 |
| %e | 用科學計數法格式化浮點數 |
| %E | 作用同上 |
| %g | %f和%e的簡寫 |
| %G | %f和%E的簡寫 |
| %p | 用十六進制數格式化變量的地址 |
?
格式化操作輔助指令
| 符號 | 功能 |
| * | 定義寬度或者小數點精度 |
| - | 用作左對齊 |
| + | 在正數前面顯示加號 |
| <sp> | 在正數前面顯示空格 |
| # | 在八進制數前顯示零,在十六進制前面顯示’0x’或‘0X’ |
| 0 | 顯示的數字前面填充’0’而不是默認的空格 |
| % | ‘%%’輸出的一個單一的‘%‘ |
| (var) | 映射變量(字典參數) |
| m.n | m是顯示的最小的總寬度,n是小數點后的位數 |
?
Python三引號
Python三引號運行一個字符串跨多行,字符串中可以包含換行符、制表符、以及其他特殊字符。
?
Python的字符串內建函數
Python的字符串常用內建函數如下:
| 方法 | 描述 |
| capitalize() | 將字符串第一個字符轉換成大寫 |
| center(width,fillchar) | 返回一個指定的寬度width居中的字符串,fillchar為填充的字符,默認為空格 |
| count(str,beg = 0,end = len(string)) | 返回str在string里面出現的次數,如果beg或end指定則返回指定返回內str出現的次數 |
| bytes.decode(encoding=”utf-8”,errors=”strict”) | bytes對象的decode()方法來解碼給定的ebytes對象,這個bytes對象可以由str.encode()來編碼返回 |
| encode(encoding=’UTF-8’,errors=’strict’) | 以encoding指定的編碼格式編碼字符串,如果出錯,則默認報一個ValueError的異常,除非errors指定的是’ignore’或者’replace’ |
| endswith(suffix,beg=0,end=len(string)) | 檢查字符串是否事宜obj結束,如果beg或end指定則檢查指定的范圍內是否以obj結束,如果是,返回true,反之返回false |
| expandtabs(tabsize=8) | 把字符串string中的tab符號轉換成空格, tab符號默認的空格數是8 |
| find(str,beg=0,end=len(string)) | 檢查str是否包含在字符串中,如果是指范圍的beg和end,則檢查是否包含在指定范圍內,如果包含返回開始的索引值,否則返回-1 |
| index(str,beg=0,end=len(string)) | 很find返回一樣,只不過如果str不在字符串中會報一個異常 |
| isalnum() | 如果字符串至少有一個字符,并且所有字符都是字母或數字返回true,否則返回false |
| isalpha() | 如果字符串至少有一個字符,并且所有字符都是字母返回true,否則返回false |
| isdigit() | 如果字符串只包含數字返回true否則返回false |
| islower() | 如果字符串中包含至少一個區分大小寫的字符,并且所有這些字符都是小寫,則返回true,否則返回false |
| isnumeric() | 如果字符串只包含數字字符返回true否則返回false |
| isspace() | 如果字符串只包含空白返回true否則返回false |
| istitle() | 如果字符串是標題化的則返回true,否則返回false |
| isupper() | 如果字符串中包含至少一個區分大小寫的而字符,并且這些字符都是大寫,則返回true,否則返回false |
| join(seq) | 以指定字符為分隔符,將seq中所有的元素合并為一個新的字符串 |
| len(string) | 返回字符串長度 |
| ljust(width[,fillchar]) | 返回一個原始字符串左對齊,并使用fillchar填充至長度width的新字符串,fillchar默認為空格 |
| lower() | 轉換字符串中的所有大寫字符串為小寫 |
| lstrip() | 截掉字符串左邊的空格或指定字符 |
| maketrans() | 創建字符映射的轉換表時,對于接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串表示轉換的目標 |
| min(str) | 返回字符串str中最小的字母 |
| replace(old,new[,max]) | 將字符串中的str1替換成str2,如果max指定,則替換次數不超過maxn |
| rfind(str,beg=0,end=lens(string)) | 類似find函數,從右開始找起 |
| rindex(str,beg=0,end=len(string)) | 類似index函數,從右才是找起 |
| rjust(width,[,fillchar]) | 返回一個原字符串右對齊,并使用fillchar(默認空格)填充至長度width的新字符串 |
| rstrip() | 刪除字符串末尾空格 |
| split(str=””,num=string.count(str)) | num=string.count(str)以str為分隔符截取字符串,如果num有指定值,則僅截取num+1個子字符串 |
| splitlines([keepends ]) | 按照行(‘\r’,’\r\n’,’\n’)分隔,返回一個包含各行作為元素的列表。如果參數keepends為false,不包含換行符,如果為true則保留換行符 |
| startwith(substr,beg=0,end=len(string)) | 檢查字符串是否是以指定子字符串substr開頭,是則返回true,否則返回false。如果beg和end指定值,則在指定范圍內檢查 |
| strip([chars]) | 在字符串上執行istrip()和rstrip() |
| swapcase() | 將字符串中大寫轉換成小寫,小寫轉換成大寫 |
| title() | 返回“標題化“的字符串,也就是說所有的單詞都是以大寫開始,所有字母均為小寫 |
| tanslate(table,deltechars=””) | 根據str給出的表,轉換成string的字符,要過濾掉的字符放到deletechars參數中 |
| upper() | 轉換字符串中的小寫字母為大寫 |
| zfill(width) | 返回長度為width的字符串。原字符串右對齊,前面填充0 |
| isdecimal() | 檢查字符串是否包含十進制字符,如果是返回true,否則返回false |
?
?
[::2]表示從頭到尾,步長為2,第一個冒號的兩側數字是截取字符串長度的范圍,第二個冒號后面是指截取的步長
也可以使用負數從字符串右邊尾部向左邊反向索引,最右側索引值為-1
字符串分隔還有partition()的方式
partition(seq)? ---- > (head,seq,tail)
從左向右遇到分隔符把字符串分割成兩部分,返回頭、分割符、尾三部分的三元組。如果沒有找到分割符,就返回頭、尾兩個空元素的三元組。
?
?
?
python字符串格式化符號%f可指定小數點后的精度,同C的使用
?
g是自動選擇輸出格式,在六位數的情況下就會以科學計數法方式輸出,
?
python輸出二進制、八進制、十六進制的方法
?
?
?
counter升級使用:
IP掩碼換算
/*** mask.py ***/ b = '1' bs_len = len(b) while bs_len < 9:b_b = b.ljust(8,'0')d = int(b_b,2)print("binary %s is equal with %s" %(b_b,d))b = b + "1"bs_len = len(b)運行結果: robot@ubuntu:~/wangqinghe/python/20190822$ vim mask.py robot@ubuntu:~/wangqinghe/python/20190822$ python3.5 mask.py binary 10000000 is equal with 128 binary 11000000 is equal with 192 binary 11100000 is equal with 224 binary 11110000 is equal with 240 binary 11111000 is equal with 248 binary 11111100 is equal with 252 binary 11111110 is equal with 254 binary 11111111 is equal with 255?
轉載于:https://www.cnblogs.com/wanghao-boke/p/11396050.html
總結
以上是生活随笔為你收集整理的Python3字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue app.js 财富值95
- 下一篇: Python3元组