美文网首页
2018-08-29 day8-函数基础

2018-08-29 day8-函数基础

作者: greencap | 来源:发表于2018-08-29 20:40 被阅读0次

总结

一.认识函数

使用函数:提高代码的复用度,让程序更简洁,封装

二.函数的声明和调用

1.什么是函数:

函数就是对实现某一特定功能的代码段封装

2.函数的分类:

内置函数和自定义函数
内置函数:系统写好的,可以直接使用的函数,例如:print函数,input函数,sum函数,len函数等
自定义函数:程序员自己去创建的函数

3.函数的定义(声明):
a.固定的格式

def 函数名(参数列表):
函数体

b.说明:

def:python中声明函数的关键字
函数名:标识符,不能是关键字; PEP8(所有字母小写,多个单词用下划线隔开),见名知义
():固定格式,并且必须写
参数列表:参数名1,参数名2,参数名3... 参数可以有多个,也可以没有,这的参数也叫形参
参数是用来从函数的外面,向函数里面传值用的(将数据从函数的外面传递到函数的里面)
函数体:实现函数功能的代码段,函数体中可能会包含return语句

4.初学者声明函数的过程:

第一步:确定函数的功能
第二步:根据功能确定函数名
第三步:确定参数(确定有无,确定有几个)
看实现函数的功能,需不需要从函数的外面传递数据进来,需要几个就定义几个参数
第四步:实现函数功能
第五步:确定返回值

5.注意:

函数体只有在调用的时候才会执行

6.函数的调用
a.固定格式

函数名(实参列表)

b.说明:

函数名:你要调用哪个函数,就写对应的函数名,函数只能先声明再调用
实参列表:就是用来给形参赋值的

三.函数的参数

参数:声明函数的时候参数列表中的参数叫形参; 调用函数的时候,参数列表中的参数叫实参
传参:传参的过程就是使用实参给形参赋值的过程,一定要保证每个形参都要有值

实参

1.位置参数:传参的时候实参的位置和形参一一对应(第一个实参传给第一个形参,第二个实参传给第二个形参...)
2关键字参数:函数调用的时候通过'形参名=实参'的形式来传参
a.参数位置

def func1(a, b, c):
    print(a, b, c)

func1(3, 'abc', True)

b.关键字参数

func1(c=3, b='abc', a=True)

c.关键字参数和位置参数结合

3.参数的默认值

a.在声明函数的时候,可以参数赋默认值的(可给所有参数赋默认值,也可给部分参数赋默认值)
给部分参数赋值时,要求默认值的参数必须放到参数列表的最后
b.调用参数有默认值的函数的时候,有默认值的参数可传可不传参

声明函数的时候每个参数都有默认值
def func2(a=0, b='a',c=True):
    print(a, b, c)

a.所有的参数都不传参,全部使用默认值
b.给部分参数传参

func2(10)
func2(b='abc')

参数列表中,部分参数有默认值(有默认值的必须放到后面)

def func3(a, b, c=20):
    print(a, b, c)

没有默认值的参数必须传参,有默认值的参数可传可不传

func3(100, 200)
func3(b=300, a=200)
4.不定个数参数

python中通过在形参名前加*,让这个形参变成一个元祖,
来让这个形参可以同时接受多个实参,多个包含0个

练习:写一个函数,计算多个数的和
def sum2(*nums):
    # print(nums, type(nums))
    sum1 = 0
    for item in nums:
        sum1 += item
    print(sum1)
sum2()
sum2(1)
sum2(20, 30, 40)
写一个函数,统计指定班级中所有学生的成绩
def class_info(class_name, *scores):
    print(class_name, scores)
class_info('python1806', 90, 80, 70)
5.对参数的类型进行说明

python不能直接约束一个变量的类型,但是可以通过说明,来提示用户调用函数的时候,参数的类型

def func4(name:str, age:int, scores:float):
    print(name, age)
func4('abc', '10', '89')

四.函数的返回值

1.返回值:函数的返回值就是return关键字后面的表达式的值,就是函数调用表达式的结果
2.python中所有的函数都有返回值,默认是None(没有return)
说明:
a.如果函数体中没有return,函数的返回值就是None
b.调用函数的语句就是函数调用表达式

1.写一个函数,打印'hello'
def say_hello():
    print('hello')
# 声明一个变量re,来保存函数调用后的结果
# say_hello()
re = say_hello()
print(re)
2.return关键字(只能写在函数体中)

a.确定返回值
b.结束函数(函数中只要遇到return,函数就直接结束)

def func1(n):
    print(n)
    return 100
    print('=====')

re = func1(10)
print(re)

练习:下面的函数的返回值是多少?

def func2():
    if False:
        return 200
print(func2())  # None
注意:看一个函数的返回值多少,不是单纯看函数中有无return,而是看函数的执行过程中是否遇到return遇到了,就是return后面的结果,否则就是None

练习:写一个函数,判断一个数是否是偶数,如果是返回True,否则返回False

def func3(n):
    if not n % 2:
        return True
    else:
        return False
re = func3(9)
print(re)
什么时候函数需要返回值?

只要实现函数的功能会产生新的数据,就通过返回值将新的数据返回,而不是打印它

练习1:写一个函数,统计一个列表中整数的个数
def count_of_int(list1:list):
    # 统计个数
    count = 0
    for item in list1:
        if isinstance(item, int):
        count += 1
    return count           
result = count_of_float([1, 56, 33.3, 2.3])
print(result)
练习2:写一个函数,将一个数字列表中将所有的元素的值都变成原来的二倍
def double_list(list1:list):
    for index in range(len(list1)):
        list1[index] *= 2
    return list1
list1 = [1, 2, 3, 4]
result = double_list(list1)
print(list1, result)

result = double_list([9, 8, 7, 6])
print(resunlt)

作业

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

def sum1(N):
    sum1 = 0
    for item in range(1, N+1):
        sum1 += item
    return sum1
re = sum1(3)
print(re)

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

def sum1(n):
    sum1=0
    for i in range(n+1):
        sum1+=i
    return sum1

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

def max_number(*number):
    number1=[]
    for i in number:
        number1.append(i)
    number1.sort()
    print(number1[-1])

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

def dice_sum (n):
    import random
    sum1=0
    for i in range(n+1):
        a=random.randint(1, 6)
        sum1+=a
    print(sum1)

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

例如:{'a':1, 'b':2, 'c':3} ---> {1:'a', 2:'b', 3:'c'}

def key_change(dict1:dict):
    a=[]
    new_dict={}
    for key in dict1:
        a=dict1[key]
        new_dict[a]=key
    print(new_dict)

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

def max_number(*number):
    number1=[]
    for i in number:
        number1.append(i)
    number1.sort()
    print(number1[-1])

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

例如:'12a&bc12d--' ---> 打印'abcd'

def all_word(str1:str):
    a=''
    b=list(str1)
    for i in b:
        if i.isalpha():
            a+=i
    print(a)

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

def averge(*nunber):
    sum1=0
    a=len(nunber)
    
    for i in nunber:
        sum1+=i
    print(sum1/2)
  1. 写一个函数,默认求10的阶层,也可以求其他数的阶层
def sum1(n):
    sum1=1
    for i in range(1,n+1):
        sum1*=i
    print(sum1)
sum1(4)
  1. 写一个函数,可以对多个数进⾏不同的运算
    例如: operation('+', 1, 2, 3) ---> 求 1+2+3的结果
    operation('-', 10, 9) ---> 求 10-9的结果
    operation('', 2, 4, 8, 10) ---> 求 24810的结构

相关文章

  • 2018-08-29 day8-函数基础

    总结 一.认识函数 使用函数:提高代码的复用度,让程序更简洁,封装 二.函数的声明和调用 1.什么是函数: 函数就...

  • 2018-08-29 Day8-函数基础01

    推荐一个网址:http://pythontutor.com/visualize.html#mode=edit可以在...

  • day8-函数基础

    1.字典相关的方法 1.clear 字典.clear() 清空字典(删除所有的键值对) dict1 = {'a'...

  • day8-函数基础

    2.字典 2.1操作字典 2.1.1. clear 字典.clear() 清空字典 2.1.2. copy 字典2...

  • day8-函数基础

    02-字典相关方法 1.clear dict.clear() - 清空字典(删除所有的键值对) 2.copy di...

  • day8-函数基础知识总结

    8.1 字典相关方法 1.clear字典.clear() - 清空字典(删除字典中所有的键值对) 2.copy字典...

  • day8-函数

    1.函数的返回值: python中每个函数都是有返回值的,返回值就是return后面的值。如果函数中没有retur...

  • 2018-08-30

    2018-08-29 张shilian 2018-08-29 22:22 · 字数 333 · 阅读 1 · 日记...

  • Day8-函数作业

    1.写⼀个函数将⼀个指定的列表中的元素逆序(例如[1, 2, 3] -> [3, 2, 1])(注意:不要使⽤列表...

  • day8-函数续

    01-函数的返回值 1.函数的返回值:a.函数返回给调用者的值b.就是return关键字后面的表达式的值c.就是函...

网友评论

      本文标题:2018-08-29 day8-函数基础

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