Python字串的運用
字串(String)
什麼是字串
字串是Python中最常用的資料型別.我們可以使用引號(“或”)來 建立字串.事實上,在Python中,加了引號的字元都被認為是字串.
name="china" #雙引號
age="5000" #只要加雙引號就是字串
age_1=5000 #不加,整形
a="""i love you""" #三雙單引號
b='''i love you''' #三單引號
c='love' #單引號
print(type(name),type(age),type(type_1),type(a),type(a),type(b),type(c),sep="|")
<class 'str'>|<class 'str'>|<class 'int'>
<class 'str'>|<class 'str'>|<class 'str'>
多引號有什麼作用?作用就是多行字元必須用多引號
a="""
輕輕的我走了,
正如我輕輕的來;
我輕輕的招手,
作別西天的雲彩.
"""
print(a)
字串運算及操作
數字可以進行加減乘除等運算,字串呢?讓我大聲告訴你,也能?what?是的,但只能進行"相加"和"相乘"運算.
1.拼接(+)
>>> a="Hello"
>>> b="Python"
>>> a+b
'HelloPython'
注意,字串的拼接只能是雙方都是字串,不能跟數字或其他的型別拼接.
2.重複
>>> a="Hello"
>>> a*3
'HelloHelloHello'
3.字串索引([]以及切片[::])
#########012345678901234567890123456789
>>> a="Life is short, I use python"
>>> len(a)
27
>>> #索引
>>> a[0]
'L'
>>> a[-27]
'L'
>>> a[0:4] #包頭不包尾
'Life'
>>> a[8:13:2]
'sot'
>>>#切片
...
>>> a[:13] #第一個元素開始一直到第12個元素
'Life is short'
>>> a[15:] #從索引值為15的元素開始 一直到最後一個元素
'I use python'
>>> a[15::2] #從索引值為15的元素開始 步長為2 即跳過每一個元素 一直到最後一個元素
'Iuepto'
>>> a[::-1] #逆序輸出
'nohtyp esu I ,trohs si efiL'
>>>
4.大小寫轉換
-
str.lower():轉小寫
-
str.upper():轉大寫
-
str.swapcase():大小寫對換
-
str.capitalize():字串首為大寫,其餘為小寫
-
str.title():以分隔符為標記,首字元為大寫,其餘為小寫
>>> a="Life is short, I use python" >>> a.lower() #將所有大寫字元轉換為小寫字元 'Life is short, i use python' >>> a.upper() #將所有小寫字元轉換為大寫字元 'LIFE IS SHORT, I USE PYTHON' >>> a.swapcase() #將所有小寫字元變成大寫,將大寫字元變成小寫 'lIFE IS SHORT, i USE PYTHON' >>> a.capitalize() #將字串的第一個字元大寫 'Life is short, i use python' >>> a.tiale() #返回標題化的字串 'Life Is Short, I Use Python' >>>
#不區分大小寫
input_str="AbDc"
a=input("請輸入驗證碼:")
if input_str.lower()==a.lower():
print("輸入正確")
else:
print("輸入錯誤")
5.字串格式輸出對齊
-
str.center()
-
str.ljust()
-
str.rjust()
-
str.zfill()
>>> a="Life is short, I use python" >>> a.center(35,'*') #返回一個原字元居中,並使用空格填充至長度 width 的新字串 '****Life is short, I use python****' >>> a.ljust(35,'*') #返回一個原字元左對齊,並使用空格填充至長度 width 的新字串 'Life is short, I use python********' >>> a.rjust(35,'*') #返回一個原字串右對齊,並使用空格填充長度 width 的新字串 '********Life is short, I use python' >>> a.zfill(35) #返回長度為 width的字串,原字串string右對齊,前面填充0,只有一個引數,zerofill '00000000Life is short, I use python'
6.刪除指定字元
- str.lstrip()
- str.rstrip()
- str.strip()
>>> a="****Life is short, I use python****"
>>> a.lstrip("*")
'Life is short, I use python****'
>>> a.rstrip("*")
'****Life is short, I use python'
>>> a.strip("*")
'Life is short, I use python'
>>>
7.計數
=COUNTIF(B2:B31, “>=30”)/COUNT(B2:B31
>>> a="Life is short, I use python"
>>> a.count('i') #返回 str在string裡面出現的次數
2
>>> a.count('i',4,8) #在索引值為(4,8)的範圍內 str出現的次數
1
>>>
8.字串搜尋定位與替換
- str.find()
>>> a="Life is short, I use python"
>>> a.find('e') #查詢元素並返回第一次出現的索引值
3
>>> a.find('e',18,24) #查詢元素在指定索引範圍內的索引
19
>>> a.find('w') #找不到值返回-1
-1
-
str.index()
和find()方法一樣,只不過如果str不在string中會報一個異常
>>> a="Life is short, I use python" >>> a.index('e') 3 >>> a.index('e',18) 19 >>> a.index('w') Tranceback(most recent call last): File "<stdin>",line 1, in <module> ValueErroe:substring not found >>>
-
str.replace()
>>> a="Life is short, I use python" >>> areplace('I use','You need') 'Life is short, You need python' >>> a.replace('t','T') 'Life is shorT, I use pyThon' >>> a.replace('t','T',1) 'Life is shorT, I use python' >>>
高老師 2019/3/18 16:28:52
9.字串條件判斷
- isalnum(),字串由字母或數字組成,
- isalpha(),字串只由字母組成,
- isdigit(),字串只由數字組成
In [1]: a = "abc123"
In [2]: b = "ABC"
In [3]: c = 123
In [4]: a.isalnum()
Out[4]: True
In [5]: a.isalpha()
Out[5]: False
In [6]: a.isdigit()
Out[6]: False
In [7]: b.isalnum()
Out[7]: True
In [8]: b.isalpha()
Out[8]: True
In [9]: b.isdigit()
Out[9]: False>>> str = '01234'
>>> str.isalnum() #是否全是字母和數字,並至少有一個字元
True
>>> str.isdigit() #是否全是數字,並至少有一個字元
True
>>> str = 'string'
>>> str.isalnum() #是否全是字母和數字,並至少有一個字元
True
>>> str.isalpha() #是否全是字母,並至少有一個字元
True
>>> str.islower() #是否全是小寫,當全是小寫和數字一起時候,也判斷為True
True
>>> str = "01234abcd"
>>> str.islower() #是否全是小寫,當全是小寫和數字一起時候,也判斷為True
True
>>> str.isalnum() #是否全是字母和數字,並至少有一個字元
True
>>> str = ' '
>>> str.isspace() #是否全是空白字元,並至少有一個字元
True
>>> str = 'ABC'
>>> str.isupper() #是否全是大寫,當全是大寫和數字一起時候,也判斷為True
True
>>> str = 'Aaa Bbb'
>>> str.istitle() #所有單詞字首都是大寫,標題
True
>>> str = 'string learn'
>>> str.startswith('str') #判斷字串以'str'開頭
True
>>> str.endswith('arn') #判讀字串以'arn'結尾
True
10.製表符轉化
str.expandtabs()
>>> a="L\tife is short, I use python"
>>> a.expandtabs() #預設將製表符轉化為8個空格
'L ife is short, I use python'
>>> a.expandtabs(4) #加上引數,將製表符轉化為對應個數的空格
’L ife is short, I use python'
>>>
11.ASCll碼和字元的轉化
-
chr():用一個範圍內在range(256)內的(就是0~255)整數作引數,返回一個對應的字元.
-
ord():將一個ASCll字元轉換為字元為對應的數字
-
>>> chr(65) 'A' >>> ord('a') 97
12.字串的分割
- join()將指定字元插入到元素之間
- split()以指定字元分隔序列且去除該字元
- partition()以指定字元分隔序列且包含該字元
#join
>>> str="learn string"
>>> '-'.join(str)
'l-e-a-r-n- -s-t-r-n-g'
>>> '+'.join(str)
'l+e+a+r+n+ +s+t+r+n+g'
>>> li=["learn string"]
>>>'-'.join(li)
'learn-string'
#split
>>> str.split('n')
['lear','stri','g']
>>> str.split('n',1)
['lear', ' string']
>>> str.rsplit('n',1)
['learn stri', 'g']
>>> str.splitlines()
['learn string']
#partition
>>> str.partition('n')
('lear', 'n', ' string')
>>> str.rattition('n')
('learn stri','n','g')
>>>
補充:
string模板
檢視:
>>> import string
>>> dir(string)
['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_re', '_string', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.capwords('hUNAN yingxiao college')
'Hunan Yingxiao College'
>>>
-
string模組中的capwords()函式功能:
-
1.將每個單詞首字母置為大寫
-
2.將每個單詞除首字母外的字母均置為小寫;
-
3.將詞與詞之間的多個空格用一個空格代替
-
4.其擁有兩個引數,第二個引數用以判斷單詞之間的分割符,預設為空格。
>>> import string >>> string.digits '0123456789' >>> string.hexdigits '0123456789abcdefABCDEF' >>> string.octdigits '01234567' >>> string.printable '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-.<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c' >>> string.puntuation Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: module 'string' has no attribute 'puntuation' >>> string.punctuation '!"#$%&\'()*+,-.<=>?@[\\]^_`{|}~' >>>
---info of Linus--- Name : Linus Age : 18 job : IT Hobbie: Read -------end------
你怎麼實現呢?你會發現,用字元拼接的方式還難實現這種格式的輸出,所以一起來學一下新姿勢
只需要把要列印的格式先準備好, 由於裡面的 一些資訊是需要使用者輸入的,你沒辦法預設知道,因此可以先放置個佔位符,再把字串裡的佔位符與外部的變數做個對映關係就好啦。
name=input("Name:")
age=input("Age:")
job=input("Job:")
hobbie=input("Hobbie:")
info='''
---info of %s---
Name :\t %s
Age :\t %s
job :\t %s
Hobbie:\t %s
-------end------
'''%(name,name,age,job,hobbie)#這行的%就是把前面的字串與括號後面的變數關聯起來
print(info)
"%"是Python風格的字串格式化操作符,非常類似C語言裡的printf()函式的字串格式化(C語言中也是使用%)。
下面整理了一下Python中字串格式化符合:
格式化符號 | 說明 |
---|---|
%c | 轉換成字元(ASCII 碼值,或者長度為一的字串) |
%r | 優先用repr()函式進行字串轉換 |
%s | 優先用str()函式進行字串轉換 |
%d / %i | 轉成有符號十進位制數 |
%u | 轉成無符號十進位制數 |
%o | 轉成無符號八進位制數 |
%x / %X | 轉成無符號十六進位制數(x / X 代表轉換後的十六進位制字元的大小寫) |
%e / %E | 轉成科學計數法(e / E控制輸出e / E) |
%f / %F | 轉成浮點數(小數部分自然截斷) |
%g / %G | %e和%f / %E和%F 的簡寫 |
%% | 輸出% (格式化字串裡面包括百分號,那麼必須使用%%) |
這裡列出的格式化符合都比較簡單,唯一想要強調一下的就是"%s"和"%r"的差別。
看個簡單的程式碼:
>>> a=15
>>> print(("%d to hex is %x") %(a,a))
15 to hex is F
>>> "%x" % 15
'f'
>>> "%f" %15
'15.000000'
>>> "%e" % 15000
'1.500000e+04'
>>> "%d" %100
'100'
>>> "%d%%" % 100
'100%'
相關文章
- Python 的內建字串方法(收藏專用)Python字串
- Python用format格式化字串PythonORM字串
- (位運算)兩個字串的位運算字串
- 你真的知道Python的字串怎麼用嗎?Python字串
- python中字串基本操作以及三種位運算Python字串
- 細數Java的語法糖(一): 用於字串拼接的 "+" 運算子Java字串
- 細數Java的語法糖(一): 用於字串拼接的 “+” 運算子Java字串
- Python Requests簡單運用Python
- Python str字串實用小案例分享!Python字串
- 初級Python中map函式的運用以及列表轉字串的方法Python函式字串
- 專題:Python 的內建字串方法(收藏專用)Python字串
- python字串的分段美化-數字中間用_或者,Python字串
- python3 筆記11.字串的切片和支援運算方法Python筆記字串
- Python中的字串Python字串
- Python中的字串與字串格式化Python字串格式化
- 06 - Python 中的字串Python字串
- 06 – Python 中的字串Python字串
- Python的字串分割方法Python字串
- Python中字串的操作Python字串
- python中的字串切片Python字串
- Python字串Python字串
- Python 字串Python字串
- Python運用於資料分析的簡單教程Python
- Python之正則表達運用Python
- Python介紹和基礎運用Python
- Python基礎學習篇-2-數值運算和字串Python字串
- 用 PHP 和 Python 生成短連結服務的字串 IDPHPPython字串
- 字串拼接運算比較字串
- Python3 - 用Shell萬用字元匹配字串Python字元字串
- Python武器庫 - 科研中常用的python字串處理 - 字串擴充Python字串
- python的運算子Python
- 用python實現四則運算的生成與判定Python
- python字串的格式化Python字串
- python 之 字串的所有操作Python字串
- Python 字串的格式化Python字串
- Python的字串索引和分片Python字串索引
- 【Python】常用的字串函式Python字串函式
- python運用——成績等級評定Python