Python筆記(19)函式與函式式程式設計

2021-10-07 18:48:10 字數 3217 閱讀 8827

#!/user/bin/env python

# -*- coding:utf-8 -*-

# author:berlin

# 1、3種程式設計方法:

# (1)物件導向---->核心內容是:類------>class

# (2)面向過程---->核心內容是:過程------>def

# (3)函式式程式設計----->核心內容是:函式------>def

# 2、函式的定義:

# (1)初中教學時的函式定義是:一般的,在乙個變化過程中,如果有兩個變數x和y,並且對於x的每乙個確定的值,y都有

# 唯一的值與其對應,那麼我們就把x稱之為自變數,把y稱之為因變數,y是x的函式,自變數x的取值範圍叫做這個函式的定義域。

# (2)程式語言中函式的定義是:函式是邏輯結構化和過程化的一種程式設計方法。

# python中函式定義方法:

# def test(x): # def代表函式的關鍵字;test代表函式名;()代表括號內可定義形參

# '這是函式定義' # 『』指文件描述(非必要,但是強烈建議為你的函式新增描述資訊)

# x += 1 # 泛指**塊或程式處理邏輯

# return x # 定義返回值##

# # 3、面向過程與函式式程式設計的區別?(定義過程和定義函式的區別?)

# # (1)函式案例:

# def function1():

# '定義函式的案例'

# print('定義函式')

# return 0##

# # (2)過程案例:

# def function2():

# '定義過程的案例'

# print('定義過程')##

# # (3)分別呼叫函式和過程,並輸出:

# a = function1()

# b = function2()

# print('函式返回的值是:%s' % a)

# print('過程返回的值是:%s' % b)

# (4)故,函式和過程的區別在於函式有return,而過程沒有return。在python中,函式和過程沒有很明確的界限,

# 因為過程雖然沒有return,但是pyton**的給過程返回了none。

# 4、為什麼要使用函式?

# (1)例1:

# 假設我們編寫好了乙個邏輯(功能),用未以追加的方式寫日誌:

# with open('a.txt', 'ab') as f:

# f.write('end action')

## # 現在有3個函式,每個函式在處理完自己的邏輯後,都需要呼叫上面的邏輯,那麼唯一的方法就是:拷貝3次這段邏輯。

# def test1():

# print('test1 starting action...')

# with open('a.txt', 'ab') as f:

# f.write('end action')

## def test2():

# print('test2 starting action...')

# with open('a.txt', 'ab') as f:

# f.write('end action')

## def test3():

# print('test3 starting action...')

# with open('a.txt', 'ab') as f:

# f.write('end action')

# 那麼假設有n個函式,你就拷貝n次嗎?--------------顯然不可能的!!!

# (2)例2:

# 把例1優化後:

# def logger_test():

# with open('a.txt', 'ab') as f:

# f.write('end action')

## def test1():

# print('test1 starting action...')

# logger_test()

## def test2():

# print('test2 starting action...')

# logger_test()

## def test3():

# print('test3 starting action...')

# logger_test()

# (3)例3:

# 需求增加:為日誌加上時間~

import time #使用時間庫

deflogger_test()

: time_format =

'%y-%m-%d %x'

#定義時間格式,『年月日小時』

time_current = time.strftime(time_format)

#指明按照定義的時間格式顯示時間

with

open

('a.txt'

,'a+'

)as f:

f.write(

'%s end action\n'

%time_current)

deftest1()

:print

('test1 starting action...'

) logger_test(

)def

test2()

:print

('test2 starting action...'

) logger_test(

)def

test3()

:print

('test3 starting action...'

) logger_test(

)# 呼叫輸出:

test1(

)test2(

)test3(

)# 故,為什麼要用函式?使用了函式有什麼好處?在例1和例2可以看出函式具有「**重用」的好處。

# 在例2和例3又可以看出函式具有「保持一致性」、「可擴充套件性」的好處。

# (1)**重用

# (2)保持一致性

# (3)可擴充套件性

Python筆記 函式定義與函式引數

def 函式名 引數 函式介面 pass return 表示式def 函式關鍵字 函式名 自行定義 引數 需要輸入的變數 函式介面 對函式作用解釋,以及每個引數的意義 pass 函式體,函式需要執行的功能的據體 return 函式所返還的結果,多個值用逗號隔開 函式名 以函式名加括號的方式呼叫,括號...

c語言函式筆記19之函式3

庫函式 由 語言系統提供 使用者無須定義,也不必在程式中作型別說明 只需在程式前包含有該函式定義的標頭檔案 如sytem函式就要包含stdlib.h這個標頭檔案,也就是從商店裡買的鐮刀,已經固定了 自定義函式 使用者在程式中根據需要而編寫的函式 自己打磨的鐮刀,可以任意形狀 和變數一樣,要想使用乙個...

Python內建函式 19 oct

英文文件 oct x convert an integer number to an octal string.the result is a valid python expression.if x is not a python intobject,it has to define an ind...