Python 的函數(shù)解析

1.函數(shù)的定義:

#定義函數(shù)的目的,增加代碼的重用性

def multiple_table():

? ? # 定義遍歷row 記錄行號(hào)

? ? row = 1

? ? while row <= 9:

? ? ? ? # 執(zhí)行第 row 行的打印

? ? ? ? start_count = 1

? ? ? ? while start_count <= row:

? ? ? ? ? ? # 內(nèi)層循環(huán)處理具體這一行要打印多少個(gè)星星

? ? ? ? ? ? # \n :換行符? \t:制表符,就是按一下tab鍵的效果,表示空4個(gè)字符

? ? ? ? ? ? print('%d? *? %d = %2d ' % (start_count, row, start_count * row), end='\t')

? ? ? ? ? ? start_count += 1

? ? ? ? # 換行

? ? ? ? print()

? ? ? ? row += 1

# 調(diào)用函數(shù),如果不調(diào)用不會(huì)執(zhí)行

multiple_table()

#函數(shù)調(diào)用必須在函數(shù)定義之后

#在?定義函數(shù)?的下方,使用?連續(xù)的三對引號(hào),給函數(shù)加注釋

在?函數(shù)調(diào)用?print 的位置,按快捷鍵?CTRL + Q?可以查看函數(shù)的說明信息

2.返回值使用return 函數(shù)

def func_sum():

? ? """求和 1+2"""

? ? sum_num = 1 + 2

? ? print(sum_num)

? ? return? #這里空著就顯示None,寫其他值就返回其他值

? ? # 這行代碼不會(huì)執(zhí)行了

? ? print('不會(huì)執(zhí)行這行代碼')

res=func_sum()?

print(res)

多個(gè)return

def is_even_num(num):? ? """判斷奇偶數(shù)"""? ? if num % 2 == 0:

? ? ? ? return True? ? else:

? ? ? ? return Fals

3.模塊的使用

新建 info.py,代碼如下

name = "datafrog"def func():? ?

????print('info_func')

再新建?get_info.py?文件,并且編寫以下代碼:

import info

print(info.name)

info.func()

4.列表推導(dǎo)

a=[x for x in range(1,7) if x%2==0]?

#設(shè)置1-7的偶數(shù)表

print(a)

5.匿名函數(shù) lambda

自己定義函數(shù)

# 定義一個(gè)函數(shù)

def fun(a, b, opt):? ?

print("a = %s" % a)

? ? print("b = %s" % b)

? ? print("result =%s" % opt(a, b))

# 調(diào)用函數(shù)fun(1, 2, lambda x,y:x+y)

輸出結(jié)果:

a = 1 b = 2 result = 3

全局變量 global

a = 10def test():? ?

global a

? ? a = 5? # 修改全局變量? ? print("函數(shù)內(nèi)a:%d" %a)

test()

print("函數(shù)外a:%d" %a)

7.可變參數(shù)

args

函數(shù)可以定義?可變參數(shù),用于接收任意數(shù)量的參數(shù)

可變參數(shù)的前邊需要添加*,用于提示python解釋器該參數(shù)為可變參數(shù)

使用可變參數(shù)直接用args即可(不需要加*)

可變參數(shù)的本質(zhì)是?將傳遞的參數(shù)包裝成了元組

def sum_num(a, b, *args):?

? ? result = a + b

? ? for temp in args:

? ? ? ? result += temp

? ? return result

sum_num(1, 2, 3, .., n)

kwargs

可變參數(shù)還有一種形式?可以接收不存在的關(guān)鍵字參數(shù)

定義參數(shù)時(shí)需要在變量名前添加兩個(gè)*

這種可變參數(shù)會(huì)將?不存在的關(guān)鍵字參數(shù)包裝成字典

def sum_num(a, b, *args, **kwargs):?

? ? print(a)

? ? print(b)

? ? print(args)

? ? print(kwargs)

sum_num(1, 2, 3, .., n, mm=5, nn=6)

8.文件的讀寫


f = open('test.txt', 'w')

#若有文件直接在里面寫,沒有的話創(chuàng)建新文件

f.write('hello world, i am here!')

f.close()

9.制作文件備份

# 提示輸入文件

oldFileName = input("請輸入要拷貝的文件名字:")

# 以讀的方式打開文件

oldFile = open(oldFileName,'rb')

# 提取文件的后綴

fileFlagNum = oldFileName.rfind('.')if fileFlagNum > 0:

? ? fileFlag = oldFileName[fileFlagNum:]

# 組織新的文件名字

newFileName = oldFileName[:fileFlagNum] + '[復(fù)件]' + fileFlag

# 創(chuàng)建新文件

newFile = open(newFileName, 'wb')

# 把舊文件中的數(shù)據(jù),一行一行的進(jìn)行復(fù)制到新文件中

for lineContent in oldFile.readlines():

? ? newFile.write(lineContent)

# 關(guān)閉文件

oldFile.close()

newFile.close()

10.文件和文件夾的操作

10.1. 文件重命名

os模塊中的rename()可以完成對文件的重命名操作

rename(需要修改的文件名, 新的文件名)

? ? import os

? ? os.rename("畢業(yè)論文.txt", "畢業(yè)論文-最終版.txt")

10.2. 刪除文件

os模塊中的remove()可以完成對文件的刪除操作

remove(待刪除的文件名)

? ? import os

? ? os.remove("畢業(yè)論文.txt")

10.3. 創(chuàng)建文件夾

? ? import os

? ? os.mkdir("張三")

10.4. 獲取當(dāng)前目錄

? ? import os

? ? os.getcwd()

10.5. 改變默認(rèn)目錄

? ? import os

? ? os.chdir("test")? # 跳轉(zhuǎn)到當(dāng)前路徑的test子目錄中

10.6. 獲取目錄列表

? ? import os

? ? os.listdir()

10.7. 刪除文件夾

? ? import os

? ? os.rmdir("張三")

目錄非空不能使用,可以使用遞歸的方式進(jìn)行刪除

11.批量修改文件名

import os

path = input("請輸入需要批量修改文件名的文件夾名稱:")

# 跳轉(zhuǎn)路徑os.chdir(path)

# # 獲取當(dāng)前的絕對路徑

# full_path = os.getcwd()

# print(full_path)

# 遍歷目標(biāo)文件夾

for subpath_name in os.listdir():

? ? new_file_name = "【復(fù)件】" + subpath_name

? ? # 每個(gè)文件改名? ?

os.rename(subpath_name, new_file_name)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容