1. 程式人生 > >Python入門 —— 函式、迴圈和條件、類 Day2【轉載】

Python入門 —— 函式、迴圈和條件、類 Day2【轉載】

本文章內容轉自於https://mp.weixin.qq.com/s?__biz=MjM5MDEzNDAyNQ==&mid=201008325&idx=1&sn=79ee31af2756fd4d30bbeab2024d9fe4&scene=21#wechat_redirect

一、函式

1. 定義函式

(1) )定義規則
介紹列表方法的時候已經大概說過函式,學過數學的人都知道函式,給一個引數返回一個值。函式也可以自己定義。用如下的格式:
在這裡插入圖片描述
函式程式碼中,return表示返回的值。比如定義一個平方函式square(x),輸入引數x,返回x的平方:
在這裡插入圖片描述
有的函式看起來不返回任何值,其實返回的是布林值(true,false)


下面的例子定義了一個m函式,該函式的引數為x,當x既不能被2整除也不能被3整除時,返回true。
在這裡插入圖片描述
(2)定義變引數函式
有時需要定義引數個數可變的函式,有幾個方法可以做到:

給引數指定預設值

比如,定義引數f(a,b=1,c=’hehe’),那麼在呼叫的時候,後面兩個引數可以定義也可以不定義,不定義的話預設為b=1,c=’hehe’,因此如下呼叫都可以:
F(‘dsds’);
F(‘dsds’,2);
F(‘dsds’,2,’hdasda’);

引數關鍵字

上面的方法等於固定了引數的位置,第一個值就是第一個引數的賦值。而“引數關鍵字”方法,其實是固定了引數關鍵字,比如仍然定義引數 f(a,b=1,c=’hehe’),呼叫的時候可以用關鍵字來固定:
F(b=2,a=11)
位置可以動,只要引數關鍵指出來就可以了。

可變引數列表

不常用

2. 常用函式

(1)zip()、range()、eval()、input()和raw_input()

zip(序列1,序列2, …)
把兩個序列壓縮在一起。
在這裡插入圖片描述
如果想把這個壓縮的結果按照字典的形式顯示出來怎麼辦?即{Ansel’:12, ’Jiayounet’:45, ‘Shushuo’:32}這樣的形式,使用dict函式即可。
在這裡插入圖片描述
range()函式
可以產生一個列表

range(結束數值)
產生一個從0到結束數值-1的列表

range(起始值,結束值,步長)
產生一個從起始值到結束值-1,間隔為步長的列表,步長預設為1。
在這裡插入圖片描述
eval()函式


eval(引數),裡面的引數是一個字串,eval的作用就是把這個字串變成一個表示式,比如下面這個例子,無論x等於多少,'x+1’就是一個字串,而經過eval函式之後,'x+1’就變成了一個表示式,x是某個值,那麼’x+1’就是這個值加上1。
在這裡插入圖片描述
input()與raw_input()
這兩個函式一樣,都是輸出函式,可以蒐集使用者輸入的資訊,並返回出來。比如:
在這裡插入圖片描述
Input與raw_input的不同地方在於,input必須要輸入合法的語句,比如字串就一定要加引號,數字可以直接輸入數字,必須是合法的,但實際上每次輸入字串的時候加引號太麻煩了,raw_input的功能在於把所有的輸入都當成原始資料,然後放入字串中,不需要注意合法性。
在這裡插入圖片描述

(2) map、reduce、filter

它們都是對一個集合進行處理。filter是過濾,map用於對映,reduce用於歸併,是Python列表的三駕馬車。
filter(布林函式,序列)
這個函式的功能相當於一個過濾器,將序列中的每個元素放入這個布林函式中,返回值為true的元素。
在這裡插入圖片描述
map(函式,序列)
將序列的值一個一個代入函式中,返回到函式得到的值.。
在這裡插入圖片描述
此外map也支援多個序列,即:
map(函式,序列1,序列2,…)
注意兩個序列的長度要一樣。
在這裡插入圖片描述
reduce(函式,序列)
首先以序列中的前兩個元素呼叫函式,再以返回值和第三個元素呼叫,直到最後一個,返回一個最終值。
在這裡插入圖片描述

迴圈與條件

注意Python是用縮排來標識出哪一段屬於本迴圈。

1、if語句

注意:一是縮排,二是條件後面有冒號:
在這裡插入圖片描述

2. while true/break 語句

該語句的格式為

while true即條件為真:
執行語句
if 中斷語句條件 : break
在這裡插入圖片描述

3. for語句

可以遍歷一個序列/字典等。
在這裡插入圖片描述

4. 迴圈與條件中的else

值得注意的是在Python中,else語句不僅可以應用在if語句中,還可以用在其迴圈語句中,比如for語句,
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

5. 列表推導式:輕量級迴圈

列表推導式,是利用其它列表來建立一個新列表的方法,工作方式類似於for迴圈,格式為:
[輸出值 for 條件]
當滿足條件時,輸出一個值,最終形成一個列表:
在這裡插入圖片描述

三、 類

1、閒說類與物件

類是一個抽象的概念,它不存在於現實中的時間/空間裡,類只是為所有的物件定義了抽象的屬性與行為。就好像“Person(人)”這個類,它雖然可以包含很多個體,但它本身不存在於現實世界上。

物件,是類的一個具體。它是一個實實在在存在的東西。如果上面說的“人”是一個抽象的類,那麼你自己,就是這個類裡一個具體的物件

一個類的物件,也叫一個類的例項。再打個比方,類好比一個模具,物件就是用這個模具造出來的具有相同屬性和方法的具體事物,俗話說:“他倆真像,好像一個模子刻出來的”,就是指的這個意思。

那麼用這個模具造一個具體事物,就叫類的例項化。下面看一個具體的類:

2. 定義一個類

在這裡插入圖片描述
在這裡插入圖片描述