【Python入门自学笔记专辑】——函数参数与返回值

函数参数

​ Python中的函数参数很灵活,具体体现在传递参数有都中形式上。本节介绍几种不同形式的参数和调用方式。

使用关键字参数调用函数

​ 为了提高函数调用的可读性,在函数调用时可以使用关键字参数调用。采用关键字参数调用函数,在函数定义时不需要做额外工作。

​ 实例代码如下:

#-*- coding = utf-8 -*-

def print_area(width, height):
    area = width * height
    print("{0} x {1} 长方形的面积:{2}".format(width, height, area))

print_area(320.0, 48.0)     # 没有采用关键字参数函数调用
print_area(width = 320.0, height = 480.0)     # 采用关键字参数函数调用
print_area(320.0, height = 480.0)     # 采用关键字参数函数调用
# print_area(width = 32.0, height)     #发生错误
#原因--height没有数值,系统就会认为是一个变量,而这个变量没有定义声明
print_area(height = 480.0, width = 320.0)     #采用关键字参数函数调用

代码很简单,就不用了多说了

参数默认值

​ 在定义函数的时候可以为参数设置一个默认值,调用函数时可以忽略该参数。

​ 实例:(下面两段代码是一体的)

# -*- coding = utf-8 -*-

def make_coffee(name = "卡布奇诺"):
    return "制作一杯{0}咖啡".format(name)

​ 上述代码定义了makeCoffee()函数,其中把卡布奇诺😋挺好喝的​设置为了默认值。在参数列表中,默认值可以跟在参数类型后面。在调用的时候,如果调用者没有传递参数,则使用默认值,调用代码如下:

coffee1 = make_coffee("拿铁")
coffee2 = make_coffee()

print(coffee1)
print(coffee2)

​ 其中coffee1 = make_coffee("拿铁")代码是传递“拿铁”,没有使用默认值。coffee2 = make_coffee()这一行没有传递参数,因此使用默认值。

StdOut:

制作一杯拿铁咖啡
制作一杯卡布奇诺咖啡


​ **提示(新手可以不看):**Java语言中make_coffee()函数可以采用重载实现多个版本。Python不支持函数重载,而是使用参数默认值的方式提供类似的重载功能。


函数返回值

​ Python函数的返回值也是比较灵活的(Python的东西都比较灵活),主要有三种形式:无返回值、单一返回值和多返回值。

无返回值函数

​ 有的函数只是为了处理某个过程,此时可以将函数设计为无返回值的。所谓无返回值,事实上是返回NoneNone表示没有实际意义的数据。

​ 实例代码:打开

#-*- coding = utf-8 -*-

def show_info(sep = ':', **info):    #可变参数,下面讲一下
    """定义**可变参数函数, dict"""
    print('-----info-----')
    for key, value in info.items():
        print('{0} {2} {1}'.format(key, value, sep))
        return                  #return None

result = show_info('->', name = 'Tony', age = 18, sex = True)
print(result)


def sum(*numbers, multiple = 1):
    """定义*可变参数函数, tuple"""
    if len(numbers) == 0:
        return
    total = 0.0
    for number in numbers:
        total += number
    return total * multiple

print(sum(30.0, 80.0))
print(sum(multiple = 2))

StdOut:

-----info-----
name -> Tony
None
110.0
None

  1. 上述代码show_info()函数中有一个**info的参数,这是一个可变参数,下面详细解释一下。Python中函数的参数个数可以变化,这种参数称为可变参数。Python中的可变参数有两种,即参数前加***形式,*可变参数被组装成一个元组,**可变参数在函数中被组装成一个字典。

    1. *可变参数

      下面看一个实例:(部分代码)

      def sum(*numbers, multiple = 1):
          total = 0.0
          for number in numbers:
              total += number
          return total * multiple
      
      print(sum(100.0, 20.0, 30.0))
      print(sum(30.0, 80.0))
      print(sum(30.0, 80.0, multiple = 2))
      
      double_tuple = (50.0, 60.0, 0.0)
      print(sum(30.0, 80.0, *double_tuple))
      

      StdOut:

      150.0

      110.0

      220.0

      220.0

      不用说都懂了吧😏

    2. **可变参数

      下面看一个实例:(部分代码)

      def show_info(sep = ':', **info):
          print('-----info-----')
          for key, value in info.items():
              print('{0} {2} {1}'.format(key, value, sep))
              
      show_info('->', name = 'Tony', age = 18, sex = True)
      show_info(student_name = 'Tony', sex = True, sep = '=')
      

      都不用说吧?挺简单的

    3. 返回值为空的时候可以用returnreturn None都可以。

多返回值函数

​ 有时候需要函数返回多个值,实现返回多个值的方式有很多,简单的方式是使用元组返回多个值,因为元组可以容纳多个数据,另外元组是不可变的,使用起来比较安全。

实例:

#coding=utf-8

def position(dt, speed):
    posx = speed[0] * dt #speed[0] 是X轴上的速度
    posy = speed[1] * dt #speed[1] 是Y轴上的速度
    return (posx, posy)

move = position(60.0, (10, -5)) #move是一个元组,用来存储多个返回值

print("物体位移:({0}, {1})".format(move[0], move[1]))

求赞

如果您认为此篇文章从对您有用,请点赞,如果写错,请纠正评论

urn (posx, posy)

move = position(60.0, (10, -5)) #move是一个元组,用来存储多个返回值

print(“物体位移:({0}, {1})”.format(move[0], move[1]))


#### 求赞

如果您认为此篇文章从对您有用,请**点赞**,如果写错,请纠正**评论**

==**参考:《Python从小白到大牛》——关东升著**==
posted @ 2020-03-11 18:11  Aeterna_Gungnir  阅读(158)  评论(0编辑  收藏  举报