函数初探

函数的定义.返回值.参数
#len()

s = "jinlaoban"

#len()

# i = 0
# for k in s:
# i += 1
# print(i)

# s1 = "ahdsajks"
#
# i = 0
# for k in s1:
# i += 1
# print(i)
s = "jinlaoban"

# def my_len(): #personal function
# i = 0
# for k in s:
# i += 1
# # print(i)
# return i #return
#
# length = my_len()
# print(length)
#function
# define function ,you can use in anywhere
#no return just only print


#the importance of return
#a,b
#len(a) #inner function
#len(b)
# the function define and transfer is not porcess

#Return .the return has three situation
#1.no return no return , just return :end the function, return None
# 2.return only one results
#it can return any types
# if return it can accept
# it will stop while meet the return
# 3.return many results
# many results matching the return
#only one variable can accept as turple

# def func():
# l = ["jinlaoban", "erge"]
# for i in l:
# print(i)
# if i == "jinlaoban":
# return i
# # return
# # print("ergeerge")
#
# ret = func()
# print(ret)

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

#Return many results
# def func2():
# return 1, 2, 3
#
# r1 = func2()
#
# print(r1)

# s = "jinlaoban"
# def my_len(s): #personal function s------>resembling parameter(形式参数)
# i = 0
# for k in s:
# i += 1
# # print(i)
# return i
#
# s = "jinlaoban"
# ret = my_len(s) #actual parameter(实际参数)
# print(ret)
# ret = my_len([1,2,3,4,5])
# print(ret)
# my_len(ret) #deliver parameter

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

#parameter
# no parameter-------->the define function and the transter function is just no things
# one parameter ------->transter something is something
# many parameters------->1.positions parameter 2.keywords transfer 3. mixture

# def my_sum(a, b):
# res = a + b
# return res
#
# ret = my_sum(b = 1,a = 2)
#
# print(ret)

# def classmate(name, sex):
# print("{} : {}" .format(name, sex))
#
# classmate("jinliaoyuan", "boy")

#use the default settings:

# def classmate(name, sex ="boy"):
# print("{} : {}" .format(name, sex))

# classmate("jinliaoyuan")
# classmate("zhangjiahui", "girl")

#Have problems

# def sum(a, b , c=0,):
# pass
#
# sum(1,2)
# sum(1,2,3)
# sum(1,2,3,4)
#dynamic parameter
# def sum(*args):
# n = 0
# for i in args:
# n += i
# return n
#
# sum(1,2)
# sum(1,2,3)
# sum(1,2,3,4)

# parameter sequence 1.positional parameter 2.dynamic parameter(*agrs), 3.default parameter

#problems transfer many dafault parameter -->turple

# def func(*agrs, l =[]):
# print(agrs, l)
#
#
# func(1,2,3, ["lat", 1])
# func(1,2,3,l = [1,2])

# #**kwargs --------->dic

# def func(**kwargs):
# print(kwargs)
#
# func(a=1,b=2, c=3)
# func(a=1, b =2)
# func(a=1)
# advantage : it can accept many parameter

# def func(*args, **kwargs):
# print(args,kwargs)
#
# func(1,2,3,4,5, a= "aaa", b = "bbb")
#position parameter, *args, "default parameter , **kwargs,
# def func(*args, default = 2, **kwargs):
# print()

#dynamic parameter have another methed

# def func(*args): #站在形参的角度上,给变量加上*,就是组合所有打散的值
# print(args)
#
# func(1,2,3,4)
# l = [1,2,3,4,5]
# # func(l[1],l[2],l[3])
# func(*l) #站在实参的角度上,给序号加上*,就是将这个序列按照顺序打散

# def func(**kwargs):
# print(kwargs)
#
# func(a=1,b=2)
# d = {"a":"1", "b":"2"}
# func(**d)

#函数注释
# def func():
# ''' 这个函数实现了什么功能
# 参数1,
# 参数2:
# :return ,
# '''
# pass

#默认参数的陷阱
#1.函数的定义 def
#2.函数的调用
#3.函数的返回值 return
#返回一个值,返回多个值可以用多个变量接收,也可以用一个变量接收
#函数的参数 形参和实参(按照位置传参,按照关键字传参,先按照位置,在按照关键字)
#形参:
#位置参数
#*args 可以接收任意多个位置参数
#默认参数 可以传可以不传
#**Kwargs:可以接收多个关键字参数

函数:
  内置函数

  自定义函数
posted @ 2018-09-02 17:28  心远志高  阅读(143)  评论(0编辑  收藏  举报