日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

node python复用代码_python-代码复用(函数、lambda、递归、PyInstaller库)

發布時間:2023/12/10 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 node python复用代码_python-代码复用(函数、lambda、递归、PyInstaller库) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、函數

1、函數定義

def? 函數名(參數列表):

2、返回值 return

返回值可以有多個,其實是返回一個tuple

##多個返回值

def sumDiff(x,y):

return x+y,x-y

n1,n2 = eval(input('輸入兩個數:'))

s,d = sumDiff(n1,n2)

print('和為{},差為{}'.format(s,d))

##計算三角形周長

import math

def square(x):

return x*x

#計算兩點之間的距離

def distance(x1,x2,y1,y2):

dist = math.sqrt(square(x1-x2) + square(y1-y2))

return dist

#判斷三個點是否構成三角形

def isTriangle(x1,y1,x2,y2,x3,y3):

flag = ((x1-x2)*(y3-y2) - (x3-x2)*(y1-y2)) != 0

return flag

def main():

print('輸入三個坐標點(x,y):')

x1,y1 = eval(input('坐標點1(x1,y1)='))

x2, y2 = eval(input('坐標點2(x2,y2)='))

x3, y3 = eval(input('坐標點3(x3,y3)='))

#判斷三個點是否構成三角形

if(isTriangle(x1,y1,x2,y2,x3,y3)):

##計算三角形周長

perim = distance(x1,y1,x2,y2)+distance(x2,y2,x3,y3)+distance(x3,y3,x1,y1)

print('該三角形周長為:{:.2f}'.format(perim))

else:

print('三個點無法構成三角形')

main()

3、參數

①位置參數

②默認參數

一是必選參數在前,默認參數在后,否則Python的解釋器會報錯

二是如何設置默認參數----- 定義默認參數要牢記一點:默認參數必須指向不變對象!

空列表不可作為默認參數?? def? a(L=[]) ------->? def? a(L=None)

##列表最后加一個END

def add_end(L=None):

if L is None:

L = []

L.append('END')

return L

③可變參數(參數名前面加*,*args)(可以傳入0個或多個參數,這些可變參數在函數調用時自動組裝為一個tuple)

## 計算 1*1+2*2+3*3+.....

def calc(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

## 傳參的時候,把list的所有元素作為可變參數傳進去

>>> nums = [1, 2, 3]

>>> calc(*nums)

14

④關鍵字參數(**kw)(關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict)

def person(name, age, **kw):

print('name:', name, 'age:', age, 'other:', kw)

>>> person('Michael', 30)

name: Michael age: 30 other: {}

>>> person('Bob', 35, city='Beijing')

name: Bob age: 35 other: {'city': 'Beijing'}

>>> person('Adam', 45, gender='M', job='Engineer')

name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}

>>> extra = {'city': 'Beijing', 'job': 'Engineer'}

>>> person('Jack', 24, **extra)

name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

⑤命名關鍵字參數

## name、age是位置參數; *后面的city和job是命名關鍵字參數

def person(name, age, *, city, job):

print(name, age, city, job)

>>> person('Jack', 24, city='Beijing', job='Engineer') ##命名關鍵字參數必須傳入參數名

Jack 24 Beijing Engineer

## name、age是位置參數;*args是可變參數, city和job是命名關鍵字參數

def person(name, age, *args, city, job):

print(name, age, args, city, job)

⑥參數組合

參數定義的順序必須是:必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數。

def wrapper(*args, **kw):? ##可以接受任意參數的調用

⑦如果變量是可變對象【列表】,返回到調用程序后,對象會呈現被修改后的狀態

def addInterest(balances,rate):

for i in range(len(balances)):

balances[i] = balances[i] * (1+rate)

def test():

amounts = [1000,500,1200,789]

rate = 0.05

addInterest(amounts,rate)

print(amounts)

test() ##[1050.0, 525.0, 1260.0, 828.45]

**************實例**************

def calculateNum(principal):

# 計算星號的個數

total = int(principal*4/1000)

return total

def createTable(principal,apr):

# 為每一年繪制星號的增長圖

for year in range(1,11):

principal = principal * (1+apr)

print("%2d"%year,end='')

total = calculateNum(principal)

print('*'*total)

print('0.0K 2.5k 5.0k 7.5k 10.0k')

def main():

#輸入本金和利率

principal = eval(input('輸入本金:'))

apr = eval(input('輸入利率:'))

#建立圖表

createTable(principal,apr)

main()

⑧參數檢查(先對參數的數據類型做檢查,拋出TypeError錯誤)

def my_abs(x):

if not isinstance(x, (int, float)): ## isinstance(x, (int, float) ) ------- 傳入參數是否為 int 或 float 類型,返回 True // False

raise TypeError('bad operand type')

if x >= 0:

return x

else:

return -x

4、空函數

def nop():

pass

二、全局變量和局部變量

1、可以用 global 保留字在函數內部使用全局變量

n , s = 10,100

def fact(n):

s = 1 ##局部變量s

for i in range(1,n+1):

s *= i

return s

print(fact(n),s) #362880000 100

n , s = 10,100

def fact(n):

global s ##聲明全局變量s

for i in range(1,n+1):

s *= i

return s

print(fact(n),s) #362880000 362880000

2、局部變量為組合類型且未創建,等同于全局變量

ls = ['a','d']

def func(a):

ls.append(a)

return

func('g')

print(ls) #['a', 'd', 'g']

ls = ['a','d']

def func(a):

ls = []

ls.append(a)

print(ls)

return

func('g') #['g']

print(ls) #['a', 'd']

三、lambda函數(特殊情況使用,建議使用def,固定情況使用)

= :

f = lambda x,y:x+y

print(f(3,4))

四、遞歸

在函數的定義中使用函數自身

1、函數+分支結構(if...else...)

2、基例

3、鏈條

##遞歸

##n!---n的階乘

def fact(n):

if n == 0:

return 1

else:

return n*fact(n-1)

print(fact(5))

##字符串反轉 s[::-1]

def reverse(s):

if s == '':

return s

else:

return reverse(s[1:]) + s[0]

print(reverse('Hello'))

斐波那契數列

def f(n):

if n == 1 or n == 2:

return 1

else:

return f(n-1) + f(n-2)

五、PyInstaller庫(第三方庫)

將 .py文件 轉換成 無需源代碼的可執行文件 exe文件

先安裝pyinstaller庫

將print1.py文件轉換成exe文件,在【dist】文件夾中,【_pycache_】和【build】文件夾可以刪掉

總結

以上是生活随笔為你收集整理的node python复用代码_python-代码复用(函数、lambda、递归、PyInstaller库)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。