1. 程式人生 > >python學習第九天 初識函數

python學習第九天 初識函數

重要 數據 efault 就是 ret 初識 定義函數 結束 內容

#len
# s = ‘金老板小護士‘
# len(s)
# def my_len(): #自定義函數
# i = 0
# for k in s:
# i += 1
# print(i)
#
# length = my_len()
# print(length)
# 函數
# 定義了之後,可以在任何需要它的地方調用
# 沒有返回長度,只是單純的打印

#返回的重要性
#a,b
#len(a) #內置函數
#len(b)

# def my_len(): #自定義函數
# i = 0
# for k in s:
# i += 1
# return i #返回值
#
# length = my_len()
# print(length)

#len()
#1.不能變,只能計算s字符串的長度
#2.只是輸出了結果

#返回值
#返回值的3種情況
# 沒有返回值 —— 返回None
# 不寫return
# 只寫return:結束一個函數的繼續
# return None —— 不常用
# 返回1個值
# 可以返回任何數據類型
# 只要返回就可以接收到
# 如果在一個程序中有多個return,那麽只執行第一個
# 返回多個值
# 用多個變量接收:有多少返回值就用多少變量接收
# 用一個變量接收: 得到的是一個元組

# def func():
# l = [‘金老板‘,‘二哥‘]
# for i in l:
# print(i)
# if i==‘金老板‘:
# return None
# print(‘=‘*10)
# ret = func()
# print(ret)

# def func():
# return {‘k‘:‘v‘}
# print(func())

# def func2():
# return 1,2,3 #return 1,2,3
#
# r= func2()
# print(r)


# def my_len(s): #自定義函數只需要0個參數,接收參數,形式參數,形參
# i = 0
# for k in s:
# i += 1
# return i #返回值
#
# ret = my_len(‘金老板小護士‘) #傳遞參數:傳參,實際參數,實參
# ret = my_len([1,2,3,4,5]) #傳遞參數:傳參
# print(ret)

#什麽叫參數?
#參數的語法
#形參和實參的概念


# def f2(l1):
# f1(l1)
# for i in l1:
# print(i)
#
# def f1(l1):
# for i in l1:
# print(i)
#
# f2([1,2,3,4])

#參數
#沒有參數
#定義函數和調用函數時括號裏都不寫內容
#有一個參數
#傳什麽就是什麽
#有多個參數
#位置參數
# def my_sum(a,b):
# print(a,b)
# res = a+b #result
# return res
#
# ret = my_sum(1,2)
# print(ret)

#站在實參的角度上:
#按照位置傳參
#按照關鍵字傳參
#混著用可以:但是 必須先按照位置傳參,再按照關鍵字傳參數
# 不能給同一個變量傳多個值

#站在形參的角度上
#位置參數:必須傳,且有幾個參數就傳幾個值
#默認參數: 可以不傳,如果不傳就是用默認的參數,如果傳了就用傳的
# def classmate(name,sex=‘男‘):
# print(‘%s : %s‘%(name,sex))
#
# classmate(‘二哥‘)
# classmate(‘小孟‘)
# classmate(‘大猛‘)
# classmate(‘朗哥‘,‘女‘)

#只有調用函數的時候
#按照位置傳 : 直接寫參數的值
#按照關鍵字: 關鍵字 = 值

#定義函數的時候:
#位置參數 : 直接定義參數
#默認參數,關鍵字參數 :參數名 = ‘默認的值‘
#動態參數 : 可以接受任意多個參數
#參數名之前加*,習慣參數名args,
#參數名之前加**,習慣參數名kwargs
#順序:位置參數,*args,默認參數,**kwargs

# def classmate(name,sex):
# print(‘%s : %s‘%(name,sex))
#
# classmate(‘二哥‘,‘男‘)
# classmate(sex=‘男‘,name = ‘二哥‘)

# def classmate(name,sex=‘男‘):
# print(‘%s : %s‘%(name,sex))
#
# classmate(‘二哥‘)
# classmate(‘朗哥‘,sex= ‘女‘)

# def sum(*args):
# n = 0
# for i in args:
# n+=i
# return n
#
# print(sum(1,2))
# print(sum(1,2,3))
# print(sum(1,2,3,4))

# def func(**kwargs):
# print(kwargs)
#
# func(a = 1,b = 2,c =3)
# func(a = 1,b = 2)
# func(a = 1)

# 動態參數有兩種:可以接受任意個參數
#*args : 接收的是按照位置傳參的值,組織成一個元組
#**kwargs: 接受的是按照關鍵字傳參的值,組織成一個字典
#args必須在kwargs之前
# def func(*args,default = 1,**kwargs):
# print(args,kwargs)
#
# func(1,2,3,4,5,default=2,a = ‘aaaa‘,b = ‘bbbb‘,)

#動態參數的另一種傳參方式
# def func(*args):#站在形參的角度上,給變量加上*,就是組合所有傳來的值。
# print(args)
#
# func(1,2,3,4,5)
# l = [1,2,3,4,5]
# func(*l) #站在實參的角度上,給一個序列加上*,就是將這個序列按照順序打散

# def func(**kwargs):
# print(kwargs)
#
# func(a=1,b=2)
# d = {‘a‘:1,‘b‘:2} #定義一個字典d
# func(**d)

#函數的註釋
# def func():
# ‘‘‘
# 這個函數實現了什麽功能
# 參數1:
# 參數2:
# :return: 是字符串或者列表的長度
# ‘‘‘
# pass

# 默認參數的陷阱
# 文件的修改
# 函數
#1.函數的定義 def
#2.函數的調用
#3.函數的返回值 return
#4.函數的參數
#形參:
# 位置參數 : 必須傳
# *args :可以接收任意多個位置參數
# 默認參數 : 可以不傳
# **kwargs : 可以接收多個關鍵字參數
#實參:按照位置傳參,按照關鍵字傳參

#函數
#內置函數

#自定義函數 !!!!!

python學習第九天 初識函數