第四章 函数之基本结构

4.1 基本结构

  1. 本质:

    • 将多行代码拿到别处并起个名字,以后通过名字就可以找到这行代码并执行
  2. 应用场景:

    • 代码重复执行
    • 代码量很多超过一屏,可以选择通过函数进行代码的分割
    • 写代码方式:面向过程----函数式编程(多)----面向对象编程
  3. 基本结构

    # 函数的定义def 函数名():    函数内容    pass# 函数的执行函数名()

    # 示例一
    def list_data():
        v = [11,54,52]
        print(v[1])
    list_data() # 54

    • 函数如果不被调用,则内部永远不会被执行
      

    # 练习题
    # 1.请写一个函数,函数计算列表 info = [11,22,33,44,55]中所有元素的和
    def list_data():
        s = 0
        info = [11, 22, 33, 44, 55]
        for i in info:
            s = s + i
        print(s)
    list_data()     # 165
    # 2.请写一个函数,用函数将列表拼接起来
    def new_list(a,b):
        c = []
        c.extend(a)
        c.extend(b)
        print(c)
    a1 = [555,4,6,5,6]
    a2 = [5646,86,6,]
    new_list(a1,a2)     # [555, 4, 6, 5, 6, 5646, 86, 6]
    # 3.计算一个列表的长度
    def list_len(age):
        conten = 0
        for i in age:
            conten +=1
        print(conten)
    v = [11,2,‘rtffd‘,‘r‘,‘g‘,‘fsd‘,77]
    list_len(v)     # 7

    练习题

  4. 返回值

    • 函数没有返回值,默认返回:None
    • 函数内部执行过程中遇到return,就终止。
    • return 可以返回任意类型
    • 如果return后面写了多个结果,,返回给调用者一个tuple(元祖),调用者可以直接使用解构获取多个变量
    def func():    return (1,2,3)?v = func()print(v)    # (1, 2, 3)?# 特殊:多个返回值,返回值为元组def func():    return 5,8,"alex"?v = func()print(v)    # (5, 8, ‘alex‘)
    def func(age):    #函数    return 9    # 返回默认值为9,默认:return Noneval = func(‘asdfghj‘)

    # 示例一
    1.让用户输入一段字符串,计算字符串中有多少个A字符的个数,有多少就在a.txt中写多少个"大王八"
    def jisuan_a(aa):
        s = 0
        for i in aa:
            if i ==‘A‘:
                s+=1
        return s
    def xieru_d(bb):
        if len(bb) == 0:
            return False
        with open(‘a.txt‘,mode=‘w‘,encoding=‘utf-8‘) as f:
            f.write(bb)
        return True
    a = input("请用户输入")
    a1 = jisuan_a(a)
    b = "大王八" * a1
    b1 = xieru_d(b)
    print(b1)
    ?
    # 示例二
    2. 写函数,计算一个列表中有多少个数字,打印: 列表中有%s个数字。
    # #    提示:type(‘x‘) == int 判断是否是数字。
    def a_list(b):
        s = 0
        for i in b:
            if type(i) == int:
                s = s + 1
        print(s)
    ?
    a = input("请输入列表")
    a = a_list(a)
    ?
    # 示例三
    2. 写函数,计算一个列表中偶数索引位置的数据构造成另外一个列表,并返回。
    def a_list(b):
        b1 = b[::2]
        return b1
    a = input("请输入列表")
    a = a_list(a)
    ?
    # 示例三
    3. 读取文件,将文件的内容构造成指定格式的数据,并返回。
    a.log文件
        alex|123|18
        eric|uiuf|19
        ...
    目标结构:
    a.  ["alex|123|18","eric|uiuf|19"] 并返回。
    b. [[‘alex‘,‘123‘,‘18‘],[‘eric‘,‘uiuf‘,‘19‘]]
    c. [
        {‘name‘:‘alex‘,‘pwd‘:‘123‘,‘age‘:‘18‘},
        {‘name‘:‘eric‘,‘pwd‘:‘uiuf‘,‘age‘:‘19‘},
    ]
    # a
    ?
    def a_1(a):
        b = []
     #   a = open(‘log.txt‘,mode=‘r‘,encoding=‘utf-8‘)
        for i in a:
            i = i.strip()
            b.append(i)
        print(b)
        return
    a1 = a_1(open(‘log.txt‘,mode=‘r‘,encoding=‘utf-8‘))
    ?
    # b
    ?
    def a_1(a):
        b = []
        for i in a:
            i = i.strip()
            i = i.split(‘|‘)
            b.append(i)
        print(b)
        return
    a1 = a_1(open(‘log.txt‘,mode=‘r‘,encoding=‘utf-8‘))
    ?
    # c
    def a_1(a):
        b = []
        c = {}
        for i in a:
            i = i.strip()
            i = i.split(‘|‘)
            c[‘name‘] = i[0]
            c[‘pwd‘] = i[1]
            c[‘age‘] = i[2]
        b.append(c)
        print(b)
        return
    a1 = a_1(open(‘log.txt‘,mode=‘r‘,encoding=‘utf-8‘))

    示例

  5. 总结

    # 情况一def f1():    passf1()?# 情况二def f2(a1):    passf2(123)?# 情况三def f3():    return 1v1 = f3()?# 情况四def f4(a1,a2):    #....    return 333v2 = f4(1,22)
    •  
      总结一:
      
      定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。
      
         def 是固定的,不能变,必须是连续的def三个字母,不能分开。。。它们要相亲相爱的在一起。
      
         空格 为了将def关键字和函数名分开,必须空(四声),当然你可以空2格、3格或者你想空多少都行,但正常人还是空1格。
      
         函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能
      
         括号:是必须加的,先别问为啥要有括号,总之加上括号就对了!
      
      注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。
      
      调用:就是 函数名() 要记得加上括号,好么好么好么。
  6. if__name__ == ‘__main__

    • __name__ == ‘__main__‘ 执行的文件就是__name__所在的文件

      • 控制当这个py文件被当作脚本直接执行的时候,就执行这里面的代码
    • __name__ == ‘文件名‘ __name__就是所在文件被导入的时候
      • 当这个py文件被当作模块导入的时候,就不执行这里面的代码

原文地址:https://www.cnblogs.com/dpsy921/p/11180049.html

时间: 2024-07-30 03:02:05

第四章 函数之基本结构的相关文章

第四章-函数与程序结构

4.1 #include <stdio.h> #define MAXLINE 1000 int add_getline(char line[], int max); int strindex(char source[], char searchfor[]); char pattern[] = "ray"; int main(void) { char line[MAXLINE]; int found = 0; while(add_getline(line, MAXLINE)

第四章 Matlab的循环结构

第四章 Matlab的循环结构 4.1 while循环 while expression code_block end 4.2 while循环举例 1) mean(a):均值,其中,a = [1 2 3 4 5 6 7 8 9] 2) std(a):标准差 4.3 for循环 1) 形式 for index=expr code_block end index是循环指数,它读取数组expr的列数,expr有多少列,循环就执行多少次,expr最常见的就是冒号表达式. 如:for ii=1:2:10 

Javascript模式(第四章函数)------读书笔记

一 背景 js函数的两个特点:1 函数是第一类对象(first-class object):2 函数可以提供作用域 1 函数是对象: 1 函数可以在运行时动态创建,还可以在程序执行过程中创建 2 可以被赋值给变量,还可以被删除 3 可以作为参数传递给别的函数,可以作为返回值,被别的函数返回, 4 可以拥有自己的属性和方法 2 由于JS没有块级作用域的概念,因此在涉及到控制变量作用域的时候,函数是必不可少的工具 1.1 消除术语歧义:我们来看一下命名函数表达式.你们函数表达式以及函数声明的定义 1

《C程序设计语言(第2版&#183;新版)》第4章 函数与程序结构

函数功能:隐藏操作细节,结构更加清晰,降低修改难度: 4.1 函数基本知识 返回值类型 函数名(参数声明表) { 声明和语句 } 函数在源文件中出现的次序可以任意: 返回值类型省略则默认int:return可不带表达式,执行到最后右花括号也会返回:都是没有返回值的,合法,但未成功返回的“值”肯定是无用的: 程序可看做变量定义与函数定义的集合:函数通过参数.返回值和外部变量通信: 4.2 返回非整型的函数 函数与调用它的主函数在同一源文件中,并且类型不一致时,编译就会发现该错误: 隐式声明:如果未

第四章 函数之参数、作用域

4.2 参数 形参.实参 def get_data(a):#a为形式参数(或形参) v = [1,5,6,,8,5] print(v[a]) get_data(1)# 1在调用函数是传递叫:实际参数(实参) # 严格按照顺序传参数:位置方式传参. # 实际参数可以是任意类型. 基本参数 任意个数 任意类型 def func(a1,a2,a3):     print(a1,a2,a3)     func(1,"asdf",True) # 1 asdf True 位置传参(调用函数并传入函

JAVA-初步认识-第四章-函数-两个明确-练习2

一. 在对函数的练习中,将之前所做过的所有小程序都用函数功能化一遍.除了练习了函数的书写,还回顾了一些特定代码的书写. 注解:跳出本例来看,像这种没有返回值的功能是否可以说,没有参数加入.→不对,之前输出矩形符号的例子里就有参数的加入. 注解:学习到这里,对于前面的许多知识点理解不够深入,很多细节也已经忘记. 注解:左右两侧不一样.

JAVA-初步认识-第四章-函数-两个明确-练习

一. 加强对函数使用的认识 观察下面截图中的三个需求,可以看出,之前对于功能化的理解还是过于肤浅.方法或函数的核心在于提高复用性,事物重复出现时,我们就将其独立地封装起来,需要时,直接调用.至于这个封装的东西是什么,根本不在乎. 二. 对函数在实际中的应用进行解析 注解:对于本题,两个明确都没搞懂.明确1是确定功能的结果,就是结果的类型,是数值类型还是没类型void.功能是画矩形,那就不是数值,是void.明确二说的是在实现功能的过程中,加入的参数问题. 注解:这里的else居然可以省略,还有返

JAVA-初步认识-第四章-函数-Demo练习

为什么会重新书写函数的练习呢?在于自己对于定义功能函数格式的不熟悉,感觉随时会忘. 这里再次做一个书写,并且详细地分析一下每一步背后的意思. class FunctionDemo { public static void main(String[] args)       // 这里定义的功能函数是最常见的三种只有,有输入,有返回值. { int c=add (3, 4);                              // 这种add(3, 4)的格式是一种象征符号,象征着一种功能

JAVA-初步认识-第四章-函数-细节

一. 函数的特殊情况 通常定义完函数后,函数都会有结果. 有常见的两种情况,输入数据,得出结果.没有输入,也得到结果(?).最特殊的在于,有输入,没有结果. 那么,没有结果的情况该怎么表示.这时,return的后面直接用分号表示. 正常的使用如下面所示: 介绍完特殊情况后,问题来了,这种特殊的情况有什么用? (注意:一定要牢记,定义函数,或者说功能函数的目的是什么,是为了将重复的运算功能化,简化程序.函数代表着功能,定义函数就是在定义功能.) 为了讲解特殊情况的使用,介绍了一个例子.将"hell