當前位置:首頁 » 編程語言 » python字元串調用函數

python字元串調用函數

發布時間: 2022-11-04 03:39:49

python中定義函數的使用方法

4.6. 定義函數
我們可以創建一個用來生成指定邊界的斐波那契數列的函數:
>>> def fib(n): # write Fibonacci series up to n
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a < n:
... print(a, end=' ')
... a, b = b, a+b
... print()
...
>>> # Now call the function we just defined:
... fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
關鍵字 def 引入了一個函數 定義。在其後必須跟有函數名和包括形式參數的圓括弧。函數體語句從下一行開始,必須是縮進的。
函數體的第一行語句可以是可選的字元串文本,這個字元串是函數的文檔字元串,或者稱為 docstring。(更多關於 docstrings 的信息請參考 文檔字元串) 有些工具通過 docstrings 自動生成在線的或可列印的文檔,或者讓用戶通過代碼交互瀏覽;在你的代碼中包含 docstrings 是一個好的實踐,讓它成為習慣吧。
函數 調用 會為函數局部變數生成一個新的符號表。確切的說,所有函數中的變數賦值都是將值存儲在局部符號表。變數引用首先在局部符號表中查找,然後是包含函數的局部符號表,然後是全局符號表,最後是內置名字表。因此,全局變數不能在函數中直接賦值(除非用 global 語句命名),盡管他們可以被引用。
函數引用的實際參數在函數調用時引入局部符號表,因此,實參總是 傳值調用 (這里的 值 總是一個對象 引用 ,而不是該對象的值)。[1] 一個函數被另一個函數調用時,一個新的局部符號表在調用過程中被創建。
一個函數定義會在當前符號表內引入函數名。函數名指代的值(即函數體)有一個被 Python 解釋器認定為 用戶自定義函數 的類型。 這個值可以賦予其他的名字(即變數名),然後它也可以被當作函數使用。這可以作為通用的重命名機制:
>>> fib
>>> f = fib
>>> f(100)
0 1 1 2 3 5 8 13 21 34 55 89
如果你使用過其他語言,你可能會反對說:fib 不是一個函數,而是一個方法,因為它並不返回任何值。事實上,沒有 return 語句的函數確實會返回一個值,雖然是一個相當令人厭煩的值(指 None )。這個值被稱為 None (這是一個內建名稱)。如果 None 值是唯一被書寫的值,那麼在寫的時候通常會被解釋器忽略(即不輸出任何內容)。如果你確實想看到這個值的輸出內容,請使用 print() 函數:

⑵ python 字元串提取信息方法總結

在日常項目中,我們經常會使用python從字元串中提取我們想要的信息,以下是各種提取信息方法的總結。

格式: str[beg:end:step]
描述: 字元串[開始索引:結束索引:步長]切取字元串為開始索引到結束索引-1內的字元串步長不指定時步長為1

舉例:
print(str[::2]) //::這里表示整個字元串,每兩個位置提取一個
print(str[1:3]) //提取第2個到第3個
print(str[2::]) //截取2 - 末尾的字元

本小節介紹了,處理字元串經常用到的一些函數方法。

語法: str.find(str, beg=0, end=len(string))
描述: Python find() 方法檢測字元串中是否包含子字元串 str ,如果指定 beg(開始) 和 end(結束) 范圍,則檢查是否包含在指定范圍內,如果包含子字元串返回開始的索引值,否則返回-1。

語法: str.split(str="", num=string.count(str)).
描述: Python split() 通過指定分隔符對字元串進行切片,如果參數 num 有指定值,則分隔 num+1 個子字元串.返回分割後的字元串列表,該方法可以講字元串轉化為列表處理。

另外的: str.splitlines([keepends])按照行(' ', ' ', ')分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。

語法: str.partition(str)
描述: partition() 方法用來根據指定的分隔符將字元串進行分割。如果字元串包含指定的分隔符,則返回一個3元的元組,第一個為分隔符左邊的子串,第二個為分隔符本身,第三個為分隔符右邊的子串。

語法: str.replace(old, new, max)
描述: Python replace() 方法把字元串中的 old(舊字元串) 替換成 new(新字元串),如果指定第三個參數max,則替換不超過 max 次。

語法: str.strip([chars]);
描述: Python strip() 方法用於移除字元串頭尾指定的字元(默認為空格或換行符)或字元序列。:該方法只能刪除開頭或是結尾的字元,不能刪除中間部分的字元。

語法: str.join(sequence)
描述: Python join() 方法用於將序列中的元素以指定的字元連接生成一個新的字元串。

上述方法還有其變形,如str.rfind(),這代表從字元串右邊開始處理,正常是從左邊開始處理。下表是其它常用的python字元串自帶函數方法。

正則表達式是一個特殊的字元序列,它能幫助你方便的檢查一個字元串是否與某種模式匹配。本小節主要介紹Python中常用的正則表達式處理函數和正則表達式的書寫規則。
re 模塊使 Python 語言擁有全部的正則表達式功能。所以在python中使用正則表達式處理函數需要import re

語法: re.search(pattern, string, flags=0)
描述: re.search 掃描整個字元串並返回第一個成功的匹配。匹配成功re.search方法返回一個匹配的對象,否則返回None。

語法: re.sub(pattern, repl, string, count=0, flags=0)
描述: Python 的 re 模塊提供了re.sub用於替換字元串中的匹配項。

語法: pattern.findall(string, pos, endpos)
描述: 在字元串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。

模式字元串使用特殊的語法來表示一個正則表達式:

⑶ Python字元串

字元串 :在python中是作為序列存在的,序列中的元素具有從左到右的順序,並根據他們的相對位置進行讀取和儲存。嚴格意義來說,字元串是一系列單個字元組成的序列,其他類型的序列還包括列表和元組。在一串字元兩側加上雙引號或者單引號即可創建字元串。

注意 :如果字元串中需要出現雙引號或者單引號,則有兩種方法。
1)使用轉義字元()進行轉義。
2)將雙引號和單引號配合使用,即若向想列印單引號,可以使用雙引號表示字元串,在字元串中只用一個單引號。反之亦然。

在一個字元串前面加上r;則會自動為字元串中的反斜杠轉義,使其只代表一個反斜杠。但是注意,原始字元串最後不能有反斜杠,否則會發生語法錯誤。如果非要在原始字元串最後加上,則可以寫為。

運行結果為:

有時我們需要創建一個跨行的字元串,則可以使用三引號來創建。

運行結果為

1)可以通過len()函數得到序列的長度。

運行結果為:

2)可以通過索引操作得到序列的各個元素值。python中序列的索引是從0開始依次向後推移。

運行結果為:

3)python還支持反向索引,是從最後一個向前推移的。-1是指序列中的最後一個元素值,-len(str)是指該序列的第一個元素值。

運行結果為:

4)序列還支持一種 分片(slice) 的操作,這是一種能夠一步提取整個分片的方法。
分片可以看作是字元串中一部提取出其中一部分的方法。其一般形式為:X[I:J],表示從X序列中取出第I個元素到不包含第J個元素的部分,結果為返回一個新的對象。

運行結果為:

在一個分片(slice)中,左邊界默認為0。同時應注意負偏移量在分片中的邊界,也應為左側數字比右側數字小。拷貝全部字元串的用法為str[:]。

運行結果為:

5)作為一個序列,字元串還支持用「+」來合並字元串。

運行結果為:

6) 不可變性 ,python中字元串具有不可變性,在創建一個字元串之後不可以通過對其某一位置進行賦值而改變該字元串,但可以通過創建一個新的字元串並以同一個變數名命名。

運行結果為:

7)除了一般的序列操作,字元串還有一些其特有的操作方法。
如find()方法,可以用於查找一個子字元串,可以返回該子字元串的索引值。但如果存在多個符合的子字元串,只會返回第一個索引值。如果不存在該子字元串,則返回-1。replace(S1,S2)方法會將字元串中的S1替換為S2。

運行結果如下:

關於字元串,python還有許多內置函數,可以通過調用dir()函數來查看。

⑷ python中str是什麼意思

Python中的str可以表示字元串類,也可以是將變數強制轉換為字元串的函數,寫作str()。str函數是Python內置函數的一種,可以直接使用,無需調用。

Python由荷蘭數學和計算機科學研究學會的Guido van Rossum於1990年代初設計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數據結構,還能簡單有效地面向對象編程

Python語法和動態類型,以及解釋型語言的本質,使它成為多數平台上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用於獨立的、大型項目的開發。

Python解釋器易於擴展,可以使用C或C++(或者其他可以通過C調用的語言)擴展新的功能和數據類型。Python也可用於可定製化軟體中的擴展程序語言。Python豐富的標准庫,提供了適用於各個主要系統平台的源碼或機器碼。

⑸ Python中字元串常用操作有哪些

字元串是 Python
中常用的數據類型,我們可以使用引號('或")來創建字元串,對字元串進行使用和操作,需要用到特定的函數,以下是常用的Python字元串操作方法:
1. capitalize()
作用:capitalize() 主要是用來實現字元串首字母大寫,其他字母小寫的功能。
實例:
1
2str1 = "oldboy"
print(str1.capitalize())
輸出結果:Oldboy
2. swapcase()
作用:swapcase() 主要是用來實現字元串大小寫反轉。
實例:
1
2str1 = " Oldboy"
print(str1.swapcase())
輸出結果:oLDBOY
3. title()
作用:title() 主要是用來實現字元串非字母隔開的部分,首字母大寫,其餘字母小寫。
實例:
1
2str1 = "Old boy e com"
print(str1.title())
輸出結果:Old Boy E Com
4. upper()
作用:upper() 主要是用來實現字元串所有字母全部大寫。
實例:
1
2str1 = "Oldboye"
print(str1.upper())
輸出結果:OLDBOYEDU
5. lower()
作用:lower() 主要是用來實現字元串所有字母全部小寫。
實例:
1
2str1 = "oLDBOYEDU"
print(str1.lower())
輸出結果:oldboye
6. center()
作用:center() 主要是用來實現字元串內容居中,填充物默認為空。
實例:
1
2
3str1 = "Oldboye"
print(str1.center(15))
print(str1.center(15,"*"))
輸出結果:
Oldboye
***Oldboye***
7. find()
作用:find() 主要作用是通過元素找索引,可以整體找,可以切片,找不到則返回-1。
實例:
1
2
3str1 = "Oldboye"
print(str1.find('b'))
print(str1.find('A'))
輸出結果:3 -1
8. index()
作用:index() 主要作用是通過元素找索引,可以整體找,可以切片,找不到會報錯。
實例:
1
2
3str1 = " Oldboye "
print(str1.index("b"))
print(str1.index("A"))
輸出結果:
0
Traceback (most recent call last):
File "", line 1, in
ValueError: substring not found
9. startswith(obj)
作用:startswith(obj) 主要作用是檢查字元串是否是以 obj 開頭,是則返回 True,否則返回 False。
實例:
1
2str1 = "Oldboye"
print(str1.startswith("O"))
輸出結果:True
10. endswith(obj)
作用:endswith(obj) 主要作用是檢查字元串是否是以 obj 開頭,是則返回 True,否則返回 False。
實例:
1
2str1 = " Oldboye "
print(str1.endswith("e"))
輸出結果:True
11. strip()
作用:strip() 主要作用是去除字元串前後兩端的空格或其他字元、換行符、tab鍵等。
實例:
1
2
3
4str1 = "***Oldboy***"
print(str1.strip("*")) #去除兩邊的*
print(str1.lstrip("*")) #去除左邊的*
print(str1.rstrip("*")) #去除右邊的*
輸出結果:
Oldboy
Oldboy***
***Oldboy
12. replace(oldstr, newstr)
作用:replace(oldstr, newstr)主要作用是替換字元串。
實例:
1
2str1 = "Oldboye"
print(str1.replace("boy","man"))
輸出結果:Oldmane
13. isalpha()
作用:isalpha()主要作用是要判斷字元串是否只由字母組成,是返回Ture,否返回False。
實例:
1
2
3
4str1 = "Oldboye"
str2 = 「Old boy e」
print(str1.isalpha())
print(str2.isalpha())
輸出結果:True False
14. isdigit()
作用:isdigit()主要作用是判斷字元串是否只由數字組成,是返回Ture,否返回False。
實例:
1
2
3
4str1 = "Oldboye"
str2 = 「520」
print(str1.isdigit())
print(str2.isdigit())
輸出結果:False True
15. format()
作用:format()主要作用是格式化字元串。
方式一:按位置傳參
1
2str1 = '我叫{},今年{}歲'.format('oldboy',30)
print(str1)
輸出結果:我叫oldboy,今年30歲
方式二:按索引傳參
1
2str1 = '我叫{0},今年{1}歲'.format('oldboy',30)
print(str1)
輸出結果:我叫oldboy,今年30歲
方式三:按key傳參
1
2str1 = '我叫{name},今年{age}歲'.format(age=30,name='oldboy')
print(str1)
輸出結果:我叫oldboy,今年30歲
16. count()
作用:count()主要作用是統計元素在字元串出現的次數。
1
2str1 = "oldboye"
print(str1.count(『o』)) #統計字元o在字元串中出現的次數
數據結果:2

⑹ python函數統計字元串中字母數學其他字元的個數

代碼如下:



text = "Hello Python,Hello 2021."
letter = 0
digital = 0
other = 0
for i in text:
if i.isalpha():
letter += 1
elif i.isdigit():
digital += 1
else:
other += 1

print('字母:{} 數字:{} 其他:{}'.format(letter,digital,other))


輸出:

字母:16 數字:4 其他:4


下面是Python內置關於判斷字元串類型的方法介紹:

  • str.isalnum()

  • 如果字元串中的所有字元都是字母或數字且至少有一個字元,則返回True, 否則返回False。 如果c.isalpha(),c.isdecimal(),c.isdigit(),或c.isnumeric()之中有一個返回True,則字元``c``是字母或數字。

  • str.isalpha()

  • 如果字元串中的所有字元都是字母,並且至少有一個字元,返回True,否則返回False。字母字元是指那些在 Unicode 字元資料庫中定義為 "Letter" 的字元,即那些具有 "Lm"、"Lt"、"Lu"、"Ll" 或 "Lo" 之一的通用類別屬性的字元。 注意,這與 Unicode 標准中定義的"字母"屬性不同。

  • str.isascii()

  • 如果字元串為空或字元串中的所有字元都是 ASCII ,返回True,否則返回False。ASCII 字元的碼點范圍是 U+0000-U+007F 。

    3.7 新版功能.

  • str.isdecimal()

  • 如果字元串中的所有字元都是十進制字元且該字元串至少有一個字元,則返回True, 否則返回False。十進制字元指那些可以用來組成10進制數字的字元,例如 U+0660 ,即阿拉伯字母數字0 。 嚴格地講,十進制字元是 Unicode 通用類別 "Nd" 中的一個字元。

  • str.isdigit()

  • 如果字元串中的所有字元都是數字,並且至少有一個字元,返回True,否則返回False。 數字包括十進制字元和需要特殊處理的數字,如兼容性上標數字。這包括了不能用來組成 10 進制數的數字,如 Kharosthi 數。 嚴格地講,數字是指屬性值為 Numeric_Type=Digit 或 Numeric_Type=Decimal 的字元。

  • str.isidentifier()

  • 如果字元串是有效的標識符,返回True,依據語言定義,標識符和關鍵位元組。

    調用keyword.iskeyword()來檢測字元串s是否為保留標識符,例如def和class。

⑺ Python中字元串無法使用endswith()函數怎麼辦

Python中字元串無法使用endswith函數,先從錯誤信息仔細看起,找到對應的位置改代碼。

根據錯誤信息反饋可知:在文件 "c: UsersABC11DesktopPython工具數字讀作.py" 中的第42行的語句if str( intn_).endswith(00):出錯,其錯誤類型是數據類型錯誤: endswith的參數必須是一個字元串或者一個字元串的tuple元組而非int。

所以,需要根據錯誤信息把第42行代碼改成if str( intn_).endswith("00"),當然根據代碼的功能判斷,錯誤遠不止這一個:以下試圖一一指出(此外,python的代碼的縮進是必須的語法結構的部分,和C語言C++Java什麼的是很不一樣的,盡量截圖python,不要直接復制粘貼,空格一被吞代碼就難看了)

以下列舉錯誤(從前往後):

①邏輯設計錯誤,在代碼的前部,input函數讀入的是字元串,num=float(input());語句將讀入的字元串變成浮點數,然後卻又把float類型的num變數使用str函數轉換類型賦值給num_。這樣做沒有語法問題,只是邏輯不通:str轉換成float再轉換回str,是否多此一舉呢;再者即使輸入是整數不帶小數點,經過str(float(input()))處理之後,結果一定會被加上小數點,那後面的if point==None:這一條件分支就完全不運行,你可以用一段小代碼驗證這一問題

64-73行修改後的代碼

⑻ python字元串常用方法

python字元串常用方法
1. Python字元串拼接(包含字元串拼接數字)
2. Python截取字元串(字元串切片)
3. Python 的len()函數:獲取字元串長度或位元組數
4. Python split()方法:分割字元串
5. Python join()方法:合並字元串
6. Python count()方法:統計字元串出現的次數
7. Python find()方法:檢測字元串中是否包含某子串
8. Python index()方法:檢測字元串中是否包含某子串
9. Python字元串對齊方法(ljust()、rjust()和center())
10. Python startswith()和endswith()方法
11. Python字元串大小寫轉換(3種)函數
12. Python去除字元串中空格(刪除指定字元)的3種方法

⑼ 在Python中使用字元串調用函數

已有字元串形式的函數名稱,那麼如何調用這個函數呢?

通過調用內置函數locals()和globals()返回的字典對象,就可以可以獲得名稱與對象的映射關系。其中,locals()僅在全局范圍內調用時可以獲得函數對象。 我們來看以下的例子。

需要注意的是,使用上述方法通過字元串調用函數時,為了系統的安全,防止執行任意函數,需要對函數名做一些處理,也就是使用統一的前綴為這些函數命名。例如在上述例子中,使用前綴cmd_+函數名的形式定義函數(cmd_help,cmd_sum)。
在傳入函數名字元串時,只傳入函數名的後半部分(如"help","sum"),由程序添加前綴後組成完整的函數名,再調用該函數。

對於類的成員函數,則可以使用getattr()獲得類成員函數。

上述代碼通過字元串調用了類成員函數,與前一段代碼執行的結果相同。

此外,還可以使用字典將字元串與函數對應起來調用,缺點就是每增加一個函數需要相應在字典對象中添加相應的鍵值,增加代碼維護工作量。

以上代碼在Python 3.6以上運行通過。

⑽ python3中,定義一個函數,遍歷字元串,使用print後調用函數會有None,換成return結果又不對

第一個圖中,在執行 print(bianli__str('sjsjsj'))這句時,首先執行print括弧中的內容,即進入bianli__str函數,執行了函數中的print語句,列印的內容是字元串的每一個字元,然後退出函數,執行print這個操作,print的內容是你定義的函數,這個函數本身是沒有值的,所以是None

解決的方法就是調用函數的時候不用再print了,如下圖:

第二個圖中結果不對是因為return就會退出函數,所以打完第一個字元後就退出了

熱點內容
桌面文件限制存儲大小 發布:2025-01-10 20:28:45 瀏覽:78
安卓車機怎麼把應用放界面 發布:2025-01-10 20:28:36 瀏覽:678
減演算法小學 發布:2025-01-10 20:22:41 瀏覽:798
ig源碼網 發布:2025-01-10 20:20:04 瀏覽:419
stm晶元用什麼編譯器 發布:2025-01-10 19:35:27 瀏覽:414
易語言qq登陸器源碼 發布:2025-01-10 19:35:00 瀏覽:888
java生成文件 發布:2025-01-10 19:30:35 瀏覽:31
文件鏈接上傳 發布:2025-01-10 19:30:32 瀏覽:907
linux安裝sqlite 發布:2025-01-10 19:09:43 瀏覽:83
java工程師證 發布:2025-01-10 18:54:02 瀏覽:36