美文网首页
千锋的第七天

千锋的第七天

作者: 堪怜咏絮才 | 来源:发表于2018-07-24 21:49 被阅读61次

一、函数的作用

1、当同一个功能的代码需要重复写多次的时候
2、当功能发生改变,需要修改多个地方的时候

二、函数的定义

1、函数就是对某一特定功能的代码进行封装
2、函数的作用:主要是封装的作用(将特定的功能绑定在一个函数中,当需要用到这个功能的时候,调用函数就可以实现)
3、声明函数
def 函数名(参数):
函数体
def:关键字
函数名:标识符,PEP8的命名规则
参数:用来接收从外部传导到函数内部的数据
函数体:实现函数功能的代码块
4.初学者声明函数的步骤:
a.确定函数的功能
b.确定函数名
c.确定参数
确定需不需要参数
确定需要几个参数
(看实现函数的功能需不需要从外面传数据到函数里面)
d.实现函数的功能
e.确定返回值
5.函数的调用
函数名(实参列表)
函数名:调用的函数一定是已经声明过的,想要使用什么功能就调用对应的函数
实参列表:实参是用来给形参赋值的
重点--------函数的调用过程:
0.回到函数声明的地方
1.使用实参给形参赋值
2.执行函数体
3.函数体执行完成后,回到函数调用的位置,再执行后面的代码

注意:
1.函数只有在调用的时候才会执行
2.函数调用的时候一定要保证每个形参都有值
3.一个函数可以调用多次

三、函数的参数

1、位置参数:传参的时候实参按位置的顺序给形参赋值
2、关键字参数:用关键字调用函数的时候,参数的顺序可以打乱,如

def func1(a, b, c):
    print(a, b, c)
func1(c=20, b=10, a=80)
结果:80 10 20

3、参数的默认值
在声明函数的时候,参数可以有默认值,但是有默认值的参数在声明的时候必须放在形参的最后面,否则会报错。
在调用函数有默认值参数的时候,有默认值的参数可以传参也可以不传参。

def func1(a, b, c=10):
    print(a, b, c)
func1(10,20)
func1(10,20,30)
结果:10 20 10
10 20 30

4、参数个数不定
参数的个数不确定的时候,就在声明函数的时候,形参的前面加一个*,将形参变成元组
调用函数的时候,这个参数会将对应的实参作为元组的元素保存起来

def func1(*x):
    print(x)
func1(1,2,3,4,5,6)
结果:(1, 2, 3, 4, 5, 6)

def func1(*x,y):#参数个数不定的时候,个数不定的参数只能放到形参的最后
    print(x,y)
func1(1,2,3,4,5,6)
结果:1 (2, 3, 4, 5, 6)
  File "C:/Users/VM590/Desktop/Python/我的程序/day7-学生管理系统/练习.py", line 15, in <module>
    func1(1,2,3,4,5,6)
TypeError: func1() missing 1 required keyword-only argument: 'y'

作业

1.编写一个函数,求1+2+3+....+N

def my_sum():
    sum1 = 0
    number = int(input('请输入一个N值:'))
    for i in range(1,number+1):
        sum1 += i
    print(sum1)
my_sum()
结果:请输入一个N值:89
4005

2.编写一个函数,求多个数中的最大值

def max1(*x):
    print(max(x))#元组也可以用max实现求其中的最大值
max1(1,2,58,96,74,52,34)
结果:96

3.编写一个函数,实现摇色子的功能,打印n个色子的点数和

法1:
def my_sum():
    number = int(input('请输入色字的个数:'))
    count = 0
    list1 = []
    sum1 = 0
    while True:
        count += 1
        import random
        n = random.randint(1,6)#random函数会包括结束下标的数字,比如该题是产生1~6之间的随机数字(包括6)
        list1.append(n)
        if count == number:
            for i in  list1:
                sum1 += i
            print(sum1)
            break
my_sum()
结果:请输入色字的个数:5
15
法2:
def sum1(x):#x代表色子的个数
    sum1 = 0
    count = 0
    while True:
        count += 1
        import random
        n = random.randint(1,6)
        sum1 += n
        if count == x:
            break
    print(sum1)
sum1(50)
结果:188
法3
def my_sum():
    number = int(input('请输入N值:'))
    sum1 = 0
    for item in range(1,number+1):
        import random
        n = random.randint(1,6)
        print(n)
        sum1 += n
    print('和:',sum1)
my_sum()
结果:请输入N值:5
4
1
4
5
1
和: 15

4.编写一个函数,交换指定字典的key和value。

法1:
dict1 = {'name':'张三','age':18,'weight':50,'hight':1.7}
def change_key_value(dict1):
    print(dict((key,value) for value,key in dict1.items()))
change_key_value({'name':'张三','age':18,'weight':50,'hight':1.7})
结果:{'张三': 'name', 18: 'age', 50: 'weight', 1.7: 'hight'}
法2
dict1 = {'name':'张三','age':18,'weight':50,'hight':1.7}
def change_key_value(dict1):#dict1表示一个字典,任何字典都可以
    list2 = []
    for key,value in dict1.items():
        list1 = [value,key]
        list2.append(list1)
    dict2 = dict(list2)         #将列表转化成字典
    print(dict2)
change_key_value(dict1)
结果:{'张三': 'name', 18: 'age', 50: 'weight', 1.7: 'hight'}
法3
dict1 = {'name':'张三','age':18,'weight':50,'hight':1.7}
def change_key_value(dict1):
    dict2 = {}
    for key,value in dict1.items():
        dict2[value] = key
    print(dict2)
change_key_value(dict1)
结果:{'张三': 'name', 18: 'age', 50: 'weight', 1.7: 'hight'}

5.编写一个函数,三个数中的最大值

def max1(x,y,z):
    print(max(x,y,z))
max1(10,8,15)
结果:15

6.编写一个函数,提取指定字符串中的所有的字母,然后拼接在一起后打印出来

def print_str():
    str1 = input('请随便输入一串字符:')
    str2 =''
    for i in str1:
        if 'a'<=i<='z' or 'A'<=i<='Z':
            str2 += i
    print(str2)
print_str()
结果:请随便输入一串字符:jjk1457ADJJHGJ8315&&^%$#@**&&
jjkADJJHGJ

7.写一个函数,求多个数的平均值

def average(*number):
    sum1 = 0
    count = 0
    for x in number:
        count += 1
        sum1 += x
    print('平均数:',sum1/count)
average(10,20,30)
结果:平均数: 20.0

8.写一个函数,默认求10的阶层,也可以求其他数的阶层

def hierarchy(x):
    mul1 = 1
    for i in range(1,x+1):
        mul1 *= i
    print(mul1)
hierarchy(10)
结果:3628800

9.写一个函数,可以对多个数进行不同的运算

例如: operation('+', 1,2,3) --->求1+2+3的结果

operation( '-',10,9) --->求10-9的结果

operation( '',2,4,8,10) --->求24* 8* 10的结构

def operation(option,*number):
    if option == '+':
        sum1 = 0
        for item in number:
            sum1 += item
        print(sum1)
    if option == '-':
        diff = 0
        for item in number:
            diff -= item
        print(diff)
    if option == '*':
        mul1 = 1
        for item in number:
            mul1 *= item
        print(mul1)
operation('*',10,25,89,14)
结果:311500

相关文章

  • 千锋的第七天

    一、函数的作用 1、当同一个功能的代码需要重复写多次的时候2、当功能发生改变,需要修改多个地方的时候 二、函数的定...

  • Unity官方培训认证中心

    想学Unity官方培训认证,就是要找千锋教育! 千锋教育,一向主打教学品质,千锋相信,要收入,先要投成本;要盈利,...

  • PHP学习路线图

    千锋PHP

  • 千锋PS基础教程精讲-千锋PS教程

    千锋PS基础教程精讲-千锋PS教程 https://www.jczhijia.com/CourseChapters...

  • 关于千锋

    千锋教育中国IT教育领先品牌 我们的愿景 成为一个有情怀、有良心、有品质的中国一流IT职业教育机构! 我们的使命 ...

  • Django学习笔记(一)基础

    前言 本文根据千锋教育的 2019最新Django全套教程 教学视频学习整理所得,衷心感谢千锋教育的无私共享。视频...

  • Zookeeper学习笔记

    此文章为博主在Bilibili上看完(千锋教育)Java微服务架构Dubbo篇之后所做的记录的 链接地址:(千锋教...

  • 孔雀女王 12、诱捕白沙

    千夫人掀开床板,凌锋爬了出来。 见有男子从夫人的床下出来,千玉刚大怒,立即拔剑对准凌锋。 千夫人赶紧拦住丈夫,说:...

  • 如来。

    千锋流转,百转成圣。

  • #千锋逆战班,云计算 郭燕 - 草稿

    在千锋 “逆战” 学习第16天 早上复习RAID和文件查找 压缩与解压 中国加油!武汉加油!千锋加油!我自己加油!...

网友评论

      本文标题:千锋的第七天

      本文链接:https://www.haomeiwen.com/subject/ibjymftx.html