In [7]:
# 关键字参数案例
def stu(name, age, addr):
print("I am a student")
print("我叫 {0}, 我今年 {1}岁了, 我住{2}".format(name, age, addr))
n = "jingjing"
a = 18
addr = "我家"
# 普通参数,只按照位置传递,容易出错
stu(a, n, addr)
print('################################################################')
def stu_key(name="No name", age=0, addr="No addr"):
print("I am a student")
print("我叫 {0}, 我今年 {1}岁了, 我住{2}".format(name, age, addr))
n = "jingjing"
a = 18
addr = "我家"
# 普通参数,只按照位置传递,容易出错
stu_key(age=a, name=n, addr=addr)
In [3]:
def stu(name,age,addr):
print('我是一名学生')
print('我叫{0},今年{1}岁了,我住在{2}'.format(name,age,addr))
n = '静静'
a = 18
addr = '我家'
stu(a,n,addr)
In [2]:
def stu_key(name="no name",age=0,addr='no addr'):
print('我是一名学生')
print('我叫{0},今年{1}岁了,我住在{2}'.format(name,age,addr))
n = '静静'
a = 18
addr = '我家'
stu_key(age=a,name=n,addr=addr)
In [4]:
# 收集参数代码
# 函数模拟一个学生进行自我介绍,但具体内容不清楚
# args把他看做一个list
def stu( *args):
print("Hello 大家好,我自我介绍以下,简答说两句:")
# type函数作用是检测变量的类型
print(type(args))
for item in args:
print(item)
stu("liuying", 18, "北京大通州区", "wangxiaojing", "single")
In [3]:
# 收集参数案例
# 自我介绍
# 调用的时候需要使用关键字参数调用
def stu1( **kwargs):
# 在函数体内对于kwargs的使用不用带星号
print("Hello 大家好,我先自我介绍一下:")
print(type(kwargs))
# 对于字典的访问,python2 和python3有区别
for k,v in kwargs.items():
print(k, "---", v)
stu(name="小明", age=22, addr="陕西西安", lover="小红", work="学生")
print("*" * 50)
In [8]:
def stu2(**kwargs):
print('Hello 大家好,我先自我介绍一下:')
print(type(kwargs))
for k,v in kwargs.items():
print(k, '------' ,v)
stu2(name='小强', sex='男', age=23, addr='北京', work='老师')
In [19]:
# 收集参数混合调用案例
# stu模拟一个学生的自我介绍
def stu(name, age, *args, hobby="没有", **kwargs):
print("Hello 大家好")
print("我叫 {0}, 我今年{1}大了。".format(name, age))
if hobby == "没有":
print("我没有爱好, so sorry")
else:
print("我的爱好是{0}".format(hobby))
print("* " * 10)
for i in args:
print(i)
print("** " * 10)
for k,v in kwargs.items():
print(k, "---", v)
# 开始调用函数
name='小明'
age = 22
# 调用的不同格式
stu(name,age)
In [20]:
stu(name,age,hobby='游泳')
In [21]:
stu(name,age,hobby='游泳',hobby2='唱歌',hobby3='烹饪')
In [22]:
stu(name,age,'小明','小红',hobby='游泳',hobby2='唱歌',hobby3='烹饪')
In [41]:
# 收集参数的解包问题
def stu(*args):
print("哈哈哈哈哈")
# n 用来表示循环次数
# 主要用来调试
n = 0
for i in args:
print(type(i))
print(n,end=' ')
n += 1
print(i)
#stu("liuying", "liuxiaoyhing", 19, 200)
l = ["liuying", 19, 23, "wangxiaojing"]
stu(l)
# 此时,args的表示形式是字典内一个list类型的元素,即 arg = (["liuying", 19, 23, "wangxiaojing"],)
# 很显然跟我们最初的想法违背
print()
print('----------------分 割 线-----------------')
print()
# 此时的调用,我们就需要解包符号,即调用的时候前面加一个星号
stu(*l)
In [44]:
# 返回值示例
def func_1():
print("有返回值呀")
return 1
def func_2():
print("没有返回值")
f1 = func_1()
print(f1)
f2 = func_2()
print(f2)
In [1]:
# 文档案例
# 函数stu是模拟一个学生的自我介绍的内容
def stu(name, age, *args):
'''
这是第一行
这是第二行
这是第三行
'''
print("This is hanshu stu")
In [2]:
# 查看函数文档
help(stu) #方法1
stu.__doc__ #方法2
Out[2]:
In [6]:
def stu(name,age):
'''
这是函数文档的文字内容
:param name: 表示学生的姓名
:param age: 表示学生的年龄
:return: 此函数没有返回值
'''
pass
help(stu)
print("*" * 20)
print(stu.__doc__)