python4.2

函數

基本上所有的高級語言都支持函數,Python也不例外。Python不但能非常靈活地定義函數,而且本身內置了很多有用的函數,可以直接調用。
比如s = area_of_circle(x)

抽象

1 + 2 + 3 + … + 100,寫起來十分不方便,於是數學家發明了求和符號∑,可以把1 + 2 + 3 + … + 100記作:
100
∑n
n=1

寫計算機程序也是一樣,函數就是最基本的一種代碼抽象的方式。

調用函數

要調用一個函數,需要知道函數的名稱和參數,比如求絕對值的函數abs,只有一個參數。可以直接從Python的官方網站查看文檔:
http://docs.python.org/3/library/functions.html#abs
也可以在交互式命令行通過help(abs)查看abs函數的幫助信息。
調用函數的時候,如果傳入的參數數量不對,會報TypeError的錯誤,並且Python會明確地告訴你:abs()有且僅有1個參數,但你給出了兩個

>>> help(abs)
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
>>> abs(-10)
10
>>> abs(11.11)
11.11
>>> abs(1,-10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: abs() takes exactly one argument (2 given)

如果傳入的參數數量是對的,但參數類型不能被函數所接受,也會報TypeError的錯誤,並且給出錯誤信息:str是錯誤的參數類型

>>> abs('b')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: bad operand type for abs(): 'str'

max()函數可以接收任意多個參數,並返回最大的那個:

>>> max(0,1,-1)
1

數據類型轉換

Python內置的常用函數還包括數據類型轉換函數,比如int()函數可以把其他數據類型轉換爲整數,float轉換爲浮點數,str轉換爲字符串,bool轉換爲布爾數

>>> int('45')
45
>>> float(10)
10.0
>>> float('12.22')
12.22
>>> str(2.3)
'2.3'
>>> bool('')
False

函數名其實就是指向一個函數對象的引用,完全可以把函數名賦給一個變量,相當於給這個函數起了一個“別名”:

>>> a = abs     #變量a指向abs函數
>>> a(-1)       #所以也可以通過a調用abs函數

練習
請利用Python內置的hex()函數把一個整數轉換成十六進制表示的字符串:
hex用法:hex(x), 參數x爲十進制整數。

>>> type(hex(1000))
<class 'str'>

返回16進制數,以字符串形式表示。

# -*- coding: utf-8 -*-
>>>n1= 255
>>> hex(n1)
'0xff'
>>>n2 = 1000
>>> hex(n2)
'0x3e8'

小結:調用Python的函數,需要根據函數定義,傳入正確的參數。如果函數調用出錯,一定要學會看錯誤信息,所以英文很重要!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章