python第八讲-函数上

函数

函数简介

  • 函数也是⼀个对象
  • 函数⽤来保存⼀些可执⾏的代码,并且可以在需要时,对这些语句进⾏多次调⽤,代码只有调用的时候才会执行
语法
def 函数名([形参1,形参2,形参3…]):
	代码块
  • 注意:函数名必须符合标识符的规范(可以包含字⺟、数字、下划线但是不能以数字开头)
  • print是函数对象 print()是调⽤函数

函数参数

def fun(a, b):  
# 函数的参数就是相当于在函数内部定义了这两个变量, 但是并没有给他们赋值   ab就是一个形参(形式上的参数)
    print(a + b)
fun(1, 2) 
 # 调用函数 ,如果有形参,那么必须传递实参(实际的参数)

函数参数

  • 形参(形式参数) 定义形参就相当于在函数内部声明了变量,但是并不是赋值
  • 实参(实际参数)指定了形参,那么在调⽤函数时必须传递实参,实参将会赋值给对应的形参,简单来说有⼏个形参就要有⼏个实参
函数传递方式
  • 定义形参时,可以为形参指定默认值。指定了默认值以后,如果⽤户传递了参数则默认值不会⽣效。如果⽤户没有传递,则默认值就会⽣效
  • 位置参数:位置参数就是将对应位置的实参赋值给对应位置的形参

不定⻓参数

  • 定义函数时,可以在形参前⾯加⼀个*,这样这个形参可以获取到所有的实参,它会将所有的实参保存到⼀个元组中
  • 带*号的形参只能有⼀个,可以和其他参数配合使⽤
  • 带*形参只能接受位置参数,不能接受关键字参数
  • 带**形参可以接收其他的关键字参数,它会将这些参数统⼀保存到字典当中。字典的key就是参数的名字,字典的value就是参数的值
  • 带**形参只有⼀个,并且必须写在所有参数的后⾯
def fun(*a):   #*a 不知道需要传入多少个参数   *只能是位置传参
    print(*a)
    print(a)
    r=0
    for i in a:
        r+=i
    print(r)
fun(2,3,4,5,7,8,1)
def fun(c,**a):      #**a传参数后 a 变为字典
    print(a)

fun(2,b=1,e=2,d=3)

参数的拆包

def fun(a,b,c):
    print(a)
    print(b)
    print(c)
t=(1,2,3)
fun(t[0],t[1],t[2])
fun(*t)

作业

打印名⽚程序:输⼊姓名,电话号码,性别,最后打印出来名⽚控制姓名⻓度为6-20,电话号码⻓度11,性别只能允许输⼊男或⼥,每⼀样信息不允许为空。

def fun():
    while True:
        name=input('输入姓名:')
        if 6<len(name)<20:
            break
        else:
            print('姓名不对')
            continue
    while True:
        tel = input('输入电话:')
        if len(tel)== 11:
            if tel.isdigit():
                break
            else:
                print('电话只能为数字')
                continue
        else:
            print('电话不对')
            continue
    while True:
        gender=input('请输入性别')
        if gender=='男' or gender=='女':
            break
        else:
            print('重新输入男女')

fun()

使⽤函数求前20个斐波那契数列斐波那契数列:1,1,2,3,5,8,13,21…即: 起始两项均为1,此后的项分别为前两项之和

def feibo(num):
    a,b=1,1
    list1=[]
    for i in range(num):
        if i==0:
            list1.append(a)
        if i>0:
            a,b=b,a+b
            list1.append(a)
    print(list1)
feibo(20)

编写⼀段代码,定义⼀个函数求1-100之间所有整数的和,并调⽤该函数打印出结果

def fun(a):
    r=0
    for i in range(1,a+1):
        r+=i
    print(r)
fun(6)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值