【Python 函数】-参数-返回值

133 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情

第2章 函数----参数

# def my_sum():
#     a = 10
#     b = 20
#     print(a + b)
# # 函数一旦定义完成,就不会再次修改函数内部代码
# my_sum()def my_sum(a,b):
    print(a + b)
​
my_sum(10,20)  # 把10赋值个my_sum的a参数,把20赋值给my_sum的b参数

2.1、需求

1.开发一个my_ sqm的函数;) 2.函数能够实现两个数字的求和功能;

def my_sum():
    a = 10
    b = 20
    print(a + b)
# 函数一旦定义完成,就不会再次修改函数内部代码
my_sum()

2.2、存在什么问题

函数只能处理固定数值的相加,如果能够把需要计算的数字,在调用函数 时,传递到函数内部就好了!

2.3、函数参数的使用

  • 在函数名的后面小括号内部填写参数;

  • 多个参数直接使用 , 分隔。

  • 带参数的求和函数

    def my_sum(a,b):
        print(a+b)
    ​
    my_sum(10,20) # 把10赋值个my_sum的a参数,把20赋值给my_sum的b参数
    ​
    def my_sum1(a,b):
        c = a + b
        print(c)
    ​
    my_sum1(5,3)
    

2.4、参数的作用

函数:把具有独立功能的代码块组织为-一个小模块,在需要的时候调用; 函数的参数:增加函数的通用性,针对相同的数据处理逻辑,能够适应更多的数据; 1.在函数内部,把参数当做变量使用,进行需要的数据处理 2.函数调用时,按照函数定义的参数顺序,把希望在函数内部处理的数据,通过参数传递

2.5、形参和实参

形参:定义函数时,小括号中的参数,是用来接收参数用的,在函数内部作为变量使用; 实参:调用函数时,小括号中的参数 , 是用来把数据传递到函数内部用的。 。

def my_sum1(a,b):   # a,b 形参
    c = a + b
    print(c)
​
my_sum1(5,3) # 5,3 实参
def my_sum(a,b):
    print(a+b)
​
num1 = 2
num2 = 3
my_sum(10,20)  # 把10赋值个my_sum的a参数,把20赋值给my_sum的b参数
my_sum(num1,num2) # b变量num1的值为2,所以形参a的值为2,形参的b的值为3
my_sum(7+2,5*3) # 形参a的值为9,形参b的值为15 ,7+2 表达式

●形参 。定义函数的时候括号里面的参数 。形参必须是变量; ●实参 。调用函数的时候,括号里面的参数 。实参可以是常量 。实参可以是变量 。实参可以是表达式 ●定义函数的时候形参有值吗? 。定义函数的时候,形参没有值,只是一个变量名 。只要调用函数的时候通过实参把值实时赋值给形参

2.6、练习

定义一个函数,名字叫my_ _func2, 有一个参数num1;
调用my_ func2时,num1 为1,输出个*号,num1为5,输出5个*号;
举例:调用函数my_ func2(3)应该输出如下结果:
***
​
def my_func2(num1):  #定义函数的时候,形参没有值
    print("*" * num1)
​
my_func2(1)
my_func2(5)
执行结果
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/函数/05定义函数.py
*
*****
​
Process finished with exit code 0

第3章 函数----返回值

在程序开发中,有时候会希望一个函数执行结束后,告诉调用者一个结果, 以便调用者针对具体的结果做后续的处理。

3.1、return关键字

●return的意义 。需求不停的变化,但函数一 旦定义函数内部的代码不应该因为需求改变而改变 。所以要把因为需求而改变的代码放到函数之外,函数之内代码函数定义完不改变

●有时候,函数并不是要显示什么内容,而是要把一个值返回给调用者, 比如python自带的 len函数就是这样的 ●函数内容通过return返回给调用者一个值 ●return后面可以是常量,也可以是表达式

# # 对于没有返回值的函数,调用方法,直接函数名(参数)
# print("hello python")
# 对于没有返回值的函数,调用方法。直接函数名(参数)# len函数是有返回值的函数
a = len("hello python") # 会把一个值返回个调用者
print(a)
print(len("hello python"))

在程序开发中,有时候会希望一个函数执行结束后,告诉调用者一个结果, 以便调用者针对具体的结果做后续的处理。

# 有返回值的函数
def my_sum(a,b):
    return a + b  # 把a + b 的结果,返回给调用者
​
num1 = my_sum(2,3) # 调用my_sum函数,所以num得到了函数的返回值
print(num1)
print(my_sum(5,6))
执行结果
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/函数/06函数的返回值.py
5
11Process finished with exit code 0

返回两个参数中的最大值

# 返回两个参数中的最大值
def my_max(num1,num2):
    if num1 > num2:
        return num1
    else:
        return num2
​
a = my_max(50,6) # 调用函数,实参是5和6,形参num1的值是5,形参num2的值是6print(a)

返回两个参数中的最大值

3.2、函数参数和返回值练习

1.定义一个函数,有两个参数,start和stop, start代表开始范围,stop 代表终止范围,求这个范围中所有整数相加的和

# 有返回值的函数'''
计算一个区间范围内的和
'''
def my_func1(start,stop): # start 形参
    sum = 0
    a = start
    while a<= stop:
        sum += a
        a += 1
    return sum
​
num1 = my_func1(4,10)
print(num1)

2.定义一个函数能够根据半径计算圆的面积

def cir(r):
    pai = 3.14
    return pai * r**2print(cir(10))
print(cir(15))
a = cir(20) + cir(30)  # 计算两圆的和
print(a)

3.定义一个函数,名字叫my_ squar, 功能为计算矩形的面积,

有两个参数height与width,分别代表矩形的高和宽; 函数返回值为矩形的面积; 如调用my_ squar(3, 4),函数返回值为12。

def my_squar(height,width):
    return height * width
​
a = my_squar(3,4) # 定义一个变量a,得到调用my_squar函数的返回值
print(a)
​
#或者
print(my_squar(3,4))

4.定义一个函数,名字叫my_ func,有两个参数num1与num2,当num1能被 num2整除时,返回值为True,否则返回值为False。 如:调用my_ func(8, 4),函数返回值为True。 如:调用my _func(9, 4),函数返回值为False。

def my_func(num1,num2):
    if num1%num2==0:
        return  True
    else:
        return  Falseprint(my_func(8,4))
print(my_func(9,4))

3.3、为什么函数要用户return

程序设计有个原则,需求是不停的变化的,可以修改函数外部的代码,但函数定义后,不应该修改内部的代码

# 需求1
# 计算两个整数的和,当和等于10的时候显示10,当和大于10的时候显示太大了,当和小于10的时候显示太小了# 需求2
# 计算两个整数的和,当和等于100的时候显示100,当和大于100的时候显示太大了,当和小于100的时候显示太小了
# def my_sum(a,b):
#     c = a + b
#     if c == 10:
#         print(c)
#     elif c > 10:
#         print("太大了")
#     else:
#         print("太小了")
#
# my_sum(4,6)
# my_sum(12,3)
# my_sum(2,5)
​
​
# 程序设计有个原则,需求是不停的变化的,可以修改函数外部的代码,但函数定义后,不应该修改内部的代码
def my_sum(a,b):
    return a + b
​
a = my_sum(4,5)
if a == 10:
    print(a)
elif a > 10:
    print("太大了")
else:
    print("太小了")