函数的基本概念

Python第四阶段

什么是函数

洗衣服的过程

函数

什么是函数

函数,就类似于洗衣机,我们只需要使用它实现对应的功能,而我们却是不需要知道里面的功能是如何。

什么是函数

print("hello,world")

使用print函数时并不知道它内部是怎么实现的,只需要使用即可

自定义函数

如果Python提供的内置函数不能够满足我们编程的要求,那么我们也可以来自己创造一个函数

def fuction_name():
    pass

当然,作为一个创造者,我们必须要知道函数内部是怎么去实现的

自定义函数

def fuction_name():
    pass
  • def为函数定义的关键字
  • fuction_name为函数名称
  • PASS用缩进表示函数体中的代码

绘制正方形函数

绘制正方形函数

import turtle

pen=turtle.Pen()

#定义绘制正方形的函数
def square():
    for i in range(4):
        pen.forward(100)
        pen.left(90)

#调用函数
square()

#移动画笔
pen.penup()
pen.goto(200,0)
pen.pendown()

#调用函数
square()

#绘制完毕
turtle.done()

带参数的函数

带参数的函数

如果我们想要画出长度可变的正方形,应该怎么做?

#定义带参数绘制正方形的函数
def square(length):
    for i in range(4):
        pen.forward(length)
        pen.left(90)

作用

length表示你要绘制的长度,我们称之为叫做参数

带参数的函数

如果我们想要画出长度可变的正方形,应该怎么做?

#定义带参数绘制正方形的函数
def square(length):
    for i in range(4):
        pen.forward(length)
        pen.left(90)

作用

length表示你要绘制的长度,我们称之为叫做参数

带参数的函数

import turtle

pen=turtle.Pen()

#定义带参数绘制正方形的函数
def square(length):
    for i in range(4):
        pen.forward(length)
        pen.left(90)

#调用函数
square(50)

将50作为这个正方形的长度传递到square函数当中,绘制一个边长为50的正方形

带参数的函数

对于参数来说,主要分为     形式参数   和    实际参数,

  • 形式参数在定义的时候不占用任何的内存,一般定义函数的时候来进行使用
  • 实际参数在使用的时候是占用电脑内存的,在实际应用中一般在调用的时候来进行使用

带参数的函数

#这里的参数被称之为形式参数
def a(x,y):
  print(x+y)
  
  
#这里的参数被称之为实际参数
a(2,3)

参数类型

参数类型

  • 位置实参
  • 关键字实参
  • 默认值
  • 列表与字典值传入

缺省参数

不定长参数

位置实参

在调用函数的时候,必须将每个实参都关联到函数定义中的每一个形参,最简单的关联方式就是基于实参的顺序,按照函数定义的顺序来放置实参的位置

def f(x,y,z):
  print(x,y,z)

#x = 3  y = 2   z  = 1
f(3,2,1)

关键字实参

如果不记得形参的顺序,但是知道每一个形参的名称,那么可以使用     关键字=值    的方式来进行参数传递,这样就可以不按照参数顺序进行传递

def f(x,y,z):
  print(x,y,z)
  
f(x = 1,y = 2,z = 3)

默认参数(缺省参数)

在定义的函数的时候,也可以使用给形参指定一个默认值,这样当在进行函数调用时,可以不提供这个形参的值,也可以进行函数调用

def Sum(x = 2,y = 3):
  print(x + y)
  
#没有传递任何参数,使用默认值x=2,y = 3
Sum()

#传递x参数,但是没有传递y参数
Sum(2)

#传递y参数
Sum(y = 4)

#两个参数都传递
Sum(4,5)

列表和字典(不定长参数)

如果不确定要传入多少个参数,那么在函数定义时可以使用*号运算符,

*args      表示将传递来的参数整合成一个元组,可以使用元组的方法来进行访问

**args    表示将传递来的参数整合成一个字典,可以使用字典的相关方法

提示

是不确定有多少个参数,而不是传入一个列表

综合练习

一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

答案

def isPalin(num):
    num = str(num)
    if len(num) != 5:
        print("length error")
    elif num[0] == num[-1] and num[1] == num[-2]:
        print("yes")
    else:
        print("no")

isPalin(int(input("Please input a number:")))

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

答案

def isPalin(num):
    num = str(num)

    S = 0
    for i in num:
        S += int(i) ** 3

    if S == int(num):
        print("yes")
    else:
        print("no")

isPalin(int(input("Please input a number:")))

绘制一个满天星图

 

  • 五角星的大小不同
  • 五角星的位置是随机的
  • 五角星的填充颜色是随机的
  • 背景颜色为黑色
Made with Slides.com