「笨辦法」學Python 3基礎篇 函式

2021-10-25 20:52:51 字數 4338 閱讀 5128

「笨辦法」學python 3基礎篇 第一部分-列印與輸入

「笨辦法」學python 3基礎篇 第二部分-檔案操作

「笨辦法」學python 3基礎篇 第三部分-函式

「笨辦法」學python 3基礎篇 第四部分-資料容器與程式結構

「笨辦法」學python 3基礎篇 第五部分-物件導向的類

「笨辦法」學python 3基礎篇 第六部分-專案骨架與自動測試

「笨辦法」學python 3基礎篇 第七部分-搭建簡易的** 結語

在介紹了輸入輸出和檔案的讀寫操作後,本文進一步介紹了python函式的基本架構,並給出了通過函式來實現列印、檔案的讀寫和字串的操作。

在python 3中,函式的語法格式與c語言的語法不一樣。函式的基本架構為:

函式的功能塊則相對於def 要有空字元,因為python 編譯時是根據空字元來判斷當前**是否屬於函式的功能塊。最後函式以return關鍵字後接函式的返回量結束定義。當然,函式的返回值是非必要項。

在了解了函式的基本定義後,我們通過解決這樣乙個簡單的程式設計問題:

如何設計乙個具備加法功能的簡易計算器?

來掌握如何運用函式。首先,我們需要分析一下這個計算器的功能:

輸入模組 :採用input函式和int(),實現被加數和加數的獲取;

計算模組:採用adder函式,引數為被加數和加數,功能塊負責完成加法預算,返回值為和;

輸出模組:提示使用者輸入數字並列印求和結果。

分析完了這個加法計算器程式的功能模組後,就可以開始編寫**了。新建乙個csdn_func.py指令碼,**具體為:

def

adder

(augend, addend)

:sum

= augend + addend

return

sumprint

("please input augend: "

, end='')

a =int

(input

("> "))

print

("please input addend: "

, end='')

b =int

(input

("> "))

result = adder(a, b)

print

(f"the sum is: "

)

前三段**為函式adder的定義,中間四行**作用為獲取輸入的被加數和加數,這裡用到了int(),將字串變數強制轉換為整數。最後兩行**為呼叫adder函式,列印求和結果。

通過powershell執行csdn_func.py指令碼所得結果為:

通過這個例子可以看出,其實函式的用法也沒什麼難的,除了語法不一樣外,其他基本和c語言差不多。

接下來,我們要用函式來挑戰一點更複雜的程式了。現在你需要解決這樣乙個問題:

從hola.txt中讀取「this is your first challenging puzzle.」這一行字串, 然後將每乙個單詞從字串中分離出來,並按照第乙個字母公升序排列,列印出排列後的結果

要解決這一問題,需要用到上一節的檔案讀取的操作,同時還要引入新的函式解決字串分割和排序的功能。

對於字串的分割,我們要使用系統函式split。split()通過指定分隔符對字串進行切片,如果第二個引數num有指定值,則分割為 num+1 個字串,返回分割後的字串列表。

split()語法為:

str.split(str="", num=string.count(str))

第乙個str – 帶分割的字串

引數str – 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等

num – 分割次數。預設為-1,即分隔所有。

我們來看如下**

str

="this is your first challenging puzzle."

print

(str

.split())

#以空格為分隔符

print

(str

.split(

'i')

)#以'i'為分隔符

print

(str

.split(

'g',1)

)#以『g』為分隔符,分割1次

在這段**中,待分割的字串為str,第二行**以空格為分隔符進行分割,第三行**則以字母i作為分隔符進行分割,第四行**以字母g作為分隔符進行分割,且分割次數為1次。每次分割返回的都是列表型別的字串。

通過powershell執行,可得結果為:

實現字串排序功能需要使用列表排序函式sort。sort函式用於對原列表進行排序,如果指定引數,則使用比較函式指定的比較函式,沒有返回值。具體的語法為:

語法:

list.sort(key=none, reverse=false)

key – 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是 取自於可迭代物件中的乙個元素來進行排序。

reverse – 排序規則, reverse = true 降序, reverse = false 公升序(預設)

在上節中,我們通過str.split()將字串按照空格進行了分割,得到了乙個字串列表。因此,我們可以對字串列表進行排序,具體**如下:

str

="this is your first challenging puzzle."

str_list =

str.split(

)print

(str_list)

str_list.sort(

)print

(str_list)

結果為:

從執行結果可知,在字串首字母公升序排列時,大寫字母的順序低於小寫字母的順序。

現在我們可以根據如下的步驟來解決本節開頭提出的問題:

從hola.txt中讀取「this is your first challenging puzzle.」這一行字串, 然後將每乙個單詞從字串中分離出來,並按照第乙個字母公升序排列,列印出排列後的結果

利用ar**獲取hola.txt的檔名

編寫read_words 函式,功能包括:開啟文件,讀取字串,關閉文件,返回字串words

編寫break_words函式,實現按照空格進行字串分割

編寫sort_words函式,實現字串公升序排列,並列印出結果

通過以上分析,解決該問題的**:

from sys import ar**

defread_words

(file_tar)

: txt =

open

(file_tar)

words = txt.readline(

) txt.close(

)return words

defbreak_words

(sentence)

: words_list = sentence.split(

)return words_list

defsort_words

(lists)

: lists.sort(

)print

(lists)

script, filename = ar**

words = read_words(filename)

words_list = break_words(words)

sort_words(words_list)

我們通過呼叫read_words, break_words和sort_words函式實現了從檔案中提取字串並對字串進行分割和排序的操作。在powershell中執行操作後,可得結果

函式非常重要。在後續的類定義中,類的功能都是由函式構成。因此,熟練掌握函式的定義和應用將是成功使用類的前提。

笨辦法學Python 3 習題6

交作業啦 ex6.py 建立了乙個名叫types of people的變數,並將其設為等於10 types of people 10 建立了乙個名叫x的變數,並將其設為f string x f there are types of people.建立了乙個名叫binary的變數,並將其設為字串 bi...

《笨辦法學Python》 習題3

加分習題 系統 mac os 10.14 python 2.7.10 版本 笨辦法學python 第四版 print i will now count my chickens print hens 25 30 6.0 print roosters 100 25 3 4 print now i wil...

笨辦法學Python

1.知識點 13節講的主要是module 模組 的概念,常用的語法是from xx import 依託於python強大的模組庫,使得呼叫十分輕鬆,功能十分強悍。argv叫做引數變數,可以理解為乙個包裹,在解包 unpack 的時候,將引數值賦給不同的變數名,其中第乙個變數是 隱藏 的,用來指代檔案...