Python中函式的使用

2021-10-06 16:07:19 字數 4139 閱讀 7814

python中函式的使用:

斐波那契數列、下一秒時間、列表合併

1、 對加減乘除分別封裝⼀個函式進⾏計算,引數是兩個數,返回值是計算結果

def add(a, b):

return a + b

def sub(a, b):

return a - b

def mul(a, b):

return a * b

def div(a, b):

return a / b

print(add(5, 2), sub(5, 2), mul(5, 2), div(5, 2))

2、 寫函式,傳⼊⼀個引數n,返回n的階乘

def factorial(n):

product = 1

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

product *= i

return product

print(factorial(5))

3、 傳⼊⼀個正整數,判斷這個數是否是素數,如果是返回true,否則返回false

def isprime(num):

""":param num: 正整數,大於2的

:return: 是素數返回true,不是返回false

"""for i in range(2,num):

while num % 2 == 0:

return false

else:

return true

print(isprime(3))

4、寫函式,計算並返回傳⼊字串中數字個數、字⺟個數、空格個數以及其他字元的個數。

def char_num(str):

ch, num,space,other = 0,0,0,0

for i in str:

if i.isalpha():

ch += 1

elif i.isdigit():

num += 1

elif i.isspace():

space += 1

else:

other += 1

return f'字串中數字有個,字母有個,空格有個,其他字元有個'

print(char_num("sdkhsjdg dhe,./;'"))

5、判斷某個數是否是偶數,返回結果

def iseven(num):

if num % 2 == 0:

return true

else:

return false

print(iseven(2))

6、求1--n之間可以被7整除的數的個數,引數是n,返回個數

def div_7(n):

count = 0 # 計數

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

if i % 7 == 0:

count += 1

return count

print(div_7(21))

5點30

分29秒表示為:

』5:30:29』

; 然後返回下⼀秒的時間(字串)

def next_time(time):

t = [int(x) for x in time.split(":")]

t2 = t[2] + t[1] * 60 + t[0] * 3600 + 1

hour = t2 // 3600 % 24

minute = t2 % 3600 // 60

second = t2 % 3600 % 60

return "::".format(hour, minute, second)

print(next_time("5:30:29"))

8、斐波那契數列指的是這樣⼀個數列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …;這個數列從第三項開始,每⼀項都等於前兩項之和。寫⼀個函式,傳⼊項數n,返回第n項的值

# 遞迴呼叫

def fibonacci(n):

if 0 < n < 3:

return 1

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

print(fibonacci(12))

9、傳⼊不定個數的字串拼接第⼀個和最後⼀個字串

def str_splicing(*args):

# 防止只有乙個引數,重複返回值

if len(args) == 1:

return args[0]

else:

return args[0] + args[-1]

print(str_splicing("wd","sdffg","sdfftr","tyg"))

10、⾃定義⼀個函式將傳⼊的兩個有序列表

[1,5,7,9]

和[2,2,6,8]

合併⼀個有序列

表,⽐如:

[1,2,2,3,6,7,8,9]

def list_merge(a,b):

a.extend(b)

return sorted(a) # sorted(list) 暫時性排序,產生乙個新的序列

# a.sort() # 永久性的排序,直接在原列表進行排序

# return a

print(list_merge([1,5,7,9],[2,2,6,8]))

11、每個學⽣都有如下資訊:學號、姓名、年齡,班級。

1)請設計⼀個函式完成輸⼊⼀個班級的學⽣資訊,引數為班級⼈數,返回值為包含學⽣資訊的列表

2)請設計⼀個函式完成按學號查詢學⽣資訊,引數是學號,返回值為學⽣資訊

3)請設計⼀個函式,對學⽣資訊按年齡排序,⽆參⽆返回值

students =   # 空列表,用於儲存輸入的學生資訊

def stu_information(num):

"""輸入學生的資訊

:param num: 學生的個數

:return: 儲存學生資訊的列表

"""for i in range(num):

d1 = {}

d1['sno'] = input(f"請輸入第個學生的學號:")

d1['name'] = input(f"請輸入第個學生的姓名:")

d1['age'] = int(input(f"請輸入第個學生的年齡:"))

d1['class'] = input(f"請輸入第個學生的班級:")

return students

def query(sno):

"""查詢學生資訊

:param sno: 學號

:return: 學生資訊

"""for i in students:

if sno == i['sno']:

return i

def stu_sort():

"""從小到大排序

key=lambda value: value['age'] 該引數用於選擇根據哪個引數排序,

:return:

"""students.sort(key=lambda value: value['age'])

stu_information(3)

print(query("1"))

stu_sort()

print(students)

測試

請輸入第1個學生的學號:1234

請輸入第1個學生的姓名:小明

請輸入第1個學生的年齡:19

請輸入第1個學生的班級:一班

請輸入第2個學生的學號:1235

請輸入第2個學生的姓名:小紅

請輸入第2個學生的年齡:20

請輸入第2個學生的班級:一班

請輸入第3個學生的學號:1236

請輸入第3個學生的姓名:小張

請輸入第3個學生的年齡:19

請輸入第3個學生的班級:一班

none

[, , ]

python中函式的使用

需要說明的python以縮排作為程式的層級關係的語言,書寫python的程式的注意縮排,定義函式 defprints print 這廝是乙個函式 呼叫函式 prints 函式的注釋,只需要在函式 之前寫一串字串,來注釋函式的用途 當我們將光標點到這個函式的時候,就知道函式的作用 def hello ...

python中函式的使用

coding utf 8 函式的使用 什麼是函式?封裝了一段 的功能模組,可以被重複使用多次 例如 數學中三角函式.def 函式名 引數列表 函式名稱的命名規範 每個單詞都是小寫的,單詞之間用 下劃線鏈結 defeat print 1.買菜 print 2.洗菜 print 3.炒菜 print 4...

python中函式的使用

函式的使用 在乙個完整的專案中 量非常大 會有很多需要重複執行的 可以將這些 寫到乙個函式中,當需要使用的時候,直接調 一行 用即可 本質 的封裝 好處 1.極大的簡化的了 2.提高了 的復用性 3.如果想新增或者修改bug,直接去對應的函式位置修改即可 定義乙個函式 def 函式名 引數1,引數2...