2018年6月21日【python学习笔记】

2018-06-25  本文已影响0人  SlashLife

一、认识函数

函数就是实现某一特定功能的代码块,在类中,函数又叫方法(对某一功能的封装)

飞机的功能:左移、右移、上移、下移、发射子弹等

没有函数的时候:
问题:
1.一样的功能对应的代码,需要重复写很多次 (代码冗余)
2.如果功能发生改变的时候,需要修改很多位置的代码

怎么解决上面的问题:使用函数

左移

  print('看后视镜')
  print('踩油门')
  print('打左转向灯')
  print('向左打方向盘')
  print('回正方向盘')

右移

  print('看后视镜')
  print('踩油门')
  print('打右转向灯')
  print('向右打方向盘')
  print('回正方向盘')

二、使用函数

a.格式:

def 函数名(参数列表):
说明文字
函数体

def:是python中声明函数的关键字
函数名:标识符,PEP 8,见名知义(根据函数名大概知道函数的功能)
():固定格式,不能省略
参数列表(形参):参数的作用就是从外面往函数中传值的.
一个函数可以没有参数,也可以有多个参数。
如果有多个参数,参数之间用逗号隔开。
冒号:固定的格式
说明文字:对函数功能进行说明
函数体:就是实现函数功能的代码段

b.对于初学者来说,声明函数的步骤:

1.确定函数的功能(确定函数是干什么的)
2.确定函数名(根据功能确定函数名)
3.确定参数(确定是否有参数,确定参数有几个,看实现这个功能需不需要从外面传值进去)
4.确定是否需要返回值(返回值就是函数返回给调用者的数据。python中所有的函数都有返回值,默认是None)
5.实现函数的功能

注意:函数只有在调用的时候才会执行

格式:
函数名(参数列表)

函数名:你声明的需要调用的函数(已经声明过得函数才能调用)
参数列表:实参

函数的调用过程:
1.就是用实参给形参赋值,
2.并且执行函数体获取返回值
3.获取返回值(这个时候会回到函数调用的位置,并且让函数调用表达式的值)

写一个函数,打印'hello python'
声明函数hello

  def hello():
      """打印'hello python'"""
      print('hello python')

调用函数hello

  hello()
  print(hello())
注意:
 1.一个函数声明后,可以调用多次;
 2.python中所有的函数调用表达式都有值

练习:写一个函数去打印10的阶层

  def jie_ceng():
      """打印10的阶层"""
      sum2 = 1
      for x in range(1, 11):
          sum2 *= x
      print(sum2)

  jie_ceng()

三、带参的函数

1.函数的声明

def 函数名(参数列表):
说明文字
函数体

形参:获取从外面传递给函数内部的值

2.函数的调用

函数名(实参列表)

实参:调用函数的时候给函数传值

写一个函数,打印两个数的和
形参就是声明在函数内的变量

  def my_sum(num1, num2):
      """打印num1和num2的和"""
      print(num1 + num2)

带参函数的调用

注意:函数调用的时候,一定要保证每个形参都要有值
2.关键字参数
  my_sum(num2=10, num1=5)

练习:写一个函数,打印一个数的立方

  def cubic(num):
      """打印一个数的立方"""
      print(num**3)

    cubic(6)

在python中,函数的参数可以设置默认值(函数声明的时候给函数赋值)。
如果参数设置了默认值,那么调用这个函数的时候,这个参数可以传参 ,也可以不参

写一个函数,问候某人(打印:xxx,how are you!)

  def say_hi(name='xxx'):
      """问候"""
      print('{},how are you!'.format(name))

函数调用的要求:保证每个参数有值

  say_hi()
  say_hi('张三')
注意:如果声明函数的时候,函数中有多个函数,有默认值的必须放在没有默认值的参数后边
  def say_hello(name='xxx', message):   #报错
        """问候"""
        print('%s, %s' % (name, message))

  def say_hello(message, name='xxx'):
        """问候"""
        print('%s, %s' % (name, message))

  say_hello('你吃了吗?', '李四')    # 李四, 你吃了吗?
  say_hello('最近好吗?')    # xxx, 最近好吗?
  say_hello(name='小花', message='I love you!')  # 小花, I love you!
  say_hello(message='我恨你!')  # xxx, 我恨你!

写一个函数,求多个数的和
参数个数不确定的时候,就在参数列表中声明一个变量,前面加一个*;
这个时候,这个变量就变成了元祖。函数调用的时候,所有的实参都会添加到元祖中

  def my_sum2(*nums):
      sum1 = 0
      for item in nums:
          sum1 += item
      print(sum1)

  my_sum2(10, 2, 30)  # 42
  my_sum2(10, 2, 30, 45, 89, 54, 789)  # 1019
上一篇下一篇

猜你喜欢

热点阅读