》函数如果不带参数
完成功能大约需要:
def one():
"""打印六个星花的函数"""
print("*"*6)
one()
def five_start():
"""五个星星"""
print("*"*5)
five_start()
def four_start():
"""五个星星"""
print("*"*4)
four_start()
C:\Users\python_hui\Anaconda3\envs\untitled6\python.exe G:/untitled6/07-函数/11.py
Process finished with exit code 0
》为了简化代码,可以考虑加入参数
函数的参数传递》如果在定义函数的时候,在函数名后面的括号里填写一个变量
那么这个变量就是形参。
形参指的是形式上的参数,可以理解为,它是一个函数局部变量。
def start_print(num):
print("*"*num)
》在函数调用的时候,如果往函数名后的括号中填入数据
那么这个数据,可以被称为,实参。
意思是,实实在在的,真实的,参数。
实参会传递给形参。
》代码
def start_print(num):
# num = 2
print("*"*num)
# 相当于 print("*"*2)
start_print(2)
start_print(10)
start_print(6)
C:\Users\python_hui\Anaconda3\envs\untitled6\python.exe G:/untitled6/07-函数/11.py
**
Process finished with exit code 0
演练-打印三角形》目标
*
**
***
****
》首先完成目标,代码如下:
def start_print(num):
print("*"*num)
start_print(1)
start_print(2)
start_print(3)
start_print(4)
》接着优化代码,不能够这样反复调用,如果要打一百行,咋整?
def start_print(num):
print("*"*num)
# start_print(1)
# start_print(2)
# start_print(3)
# start_print(4)
i = 1
while i < 8:
# print(i)
start_print(i)
i += 1
C:\Users\python_hui\Anaconda3\envs\untitled6\python.exe G:/untitled6/07-函数/11.py
*
**
Process finished with exit code 0
两个位置参数def start_print(num, c):
# c = "-"
print(c*num)
start_print(7, "-")
start_print(3, "+")
start_print(5, "&")
结果
C:\Users\python_hui\Anaconda3\envs\untitled6\python.exe G:/untitled6/07-函数/11.py
-------
+++
&&&&&
Process finished with exit code 0
》位置参数的小结
实参会传递给形参
按照位置对应的关系来传递
有默认值的参数在定义函数时,给形参一个默认值
def 函数名(形参=默认值)
def start_print(num, c="*"):
print(c*num)
start_print(6)
start_print(3)
start_print(2,"+")
函数参数的注意事项
def stu_info(name,gender="男"):
print("学生姓名:{},性别:{}".format(name, gender))
# 位置参数
stu_info("张三")
# 位置参数,位置参数
stu_info("黄月英", "女")
stu_info("吕布", "男")
# 位置参数,关键词传参
stu_info("貂蝉", gender="女")
# 关键词传参, 关键词传参
stu_info(name="星彩", gender="女")
stu_info("星彩",gender="女")
stu_info(gender="男", name="董卓")
# 如果,传参即有位置参数,又有关键词参数
# 注意
# 位置参数一定要写在左边
# 关键词参数一定要写在右边