Python四级考试笔记

news2025/1/24 4:53:37

Python四级考试笔记【源源老师】

四级标准

一、 理解函数及过程、函数的参数、函数的返回值、变量作用域等概念。

二、 能够创建简单的自定义函数。

三、 理解算法以及算法性能、效率的概念,初步认识算法优化 效率的方法。

四、 理解基本算法中递归的概念。

五、 掌握自定义函数及调用,实现基本算法中的递归方法。

六、 掌握基本算法中由递归变递推的方法。

七、 理解基本算法中的分治算法,能够用分治算法实现简单的 Python程序。

八、 掌握第三方库(模块)的功能、获取、安装、调用等。

函数

1. 定义

  • 函数:是组织好的,可重复使用的,用来实现特定功能的代码段。例如:
res = len('I like python')
print(res) #13
  • 为什么我们随时可以使用len函数?因为len函数是python的内置函数,已经提前写好了,可以重复被使用,len函数的作用就是用来统计长度的。我们使用过的:input()、print()、str()、int()等都是Python的内置函数。

函数主要有两大作用:

  • 将功能封装在函数内,可供随时随地重复利用
  • 提高代码的复用性,减少重复代码,提升效率

2. 语法

def 函数名(参数):
	函数体
	return 返回值

注意: ① 参数如不需要,可以省略 ② 返回值如不需要,可以省略 ③ 函数必须先定义后使用

举例:

def fn():
	print('我喜欢python')

#调用函数,也就是让fn函数执行
fn()

3. 参数

参数的作用是:在函数进行计算的时候,接受外部(调用时)提供的数据

有如下代码,完成了2个数字相加的功能:

def add():
    sum = 1+2
    print(sum)
    
#调用函数    
add()

这个函数的功能非常局限,只能计算1 + 2。有没有可能实现:每一次使用函数,用户给出任意两个数字,都能进行相加呢?可以的,使用函数的传入参数功能,即可实现。

def add(x, y):
    sum = x+y
    print(sum)
    
add(1,2) #每次调用函数时,可以传入想要的参数
add(3,4) #每次调用函数时,可以传入想要的参数
  • 形参:函数定义中,提供的x和y,称之为 形式参数(形参),表示函数声明将要使用2个参数,参数之间使用逗号进行分隔。
  • 实参:函数调用中,提供的1和2,称之为 实际参数(实参),表示函数执行时真正使用的参数值。传入的时候,按照顺序传入数据,使用逗号分隔。

【注意】:在Python中,如果一个方法定义时声明了某个参数,那么在调用这个方法时就必须提供这个参数的值,否则程序会报错。

4. 返回值

  • 返回值:就是程序中函数完成事情后,最后给调用者的结果
def add(x, y):
    sum = x+y
    return sum
    
res = add(1,2)
print(res) #3

以上add函数用来对两个数进行相加,最后,会将相加的结果sum返回给函数调用者res
所以,变量res接收到了函数的执行结果,也就是res = 3.

  • 【扩展】:思考以下问题
    在这里插入图片描述

5. 函数的嵌套

  • 函数嵌套:指的是一个函数里面又调用了另外一个函数
def fn():
    print('I like python')
    
def add(x, y):
    sum = x+y
    print(sum)
    fn()
      
add(1,2)

6. 变量作用域

  • 变量作用域指的是变量的作用范围(即变量在哪里可用,在哪里不可用)。变量作用域主要分为两类:局部变量和全局变量。

(1)局部变量

  • 局部变量:定义在函数体内部的变量,即只在函数体内部生效
在这里插入图片描述

变量num是定义在testA函数内部的变量,在函数内部访问不会报错,但在函数外部访问会报错。

(2)全局变量

  • 全局变量:在函数体内、函数体外都能访问的变量

思考:如果有一个数据,在函数A和函数B中都要使用,该怎么办?
答:将这个数据存储在一个全局变量里面

在这里插入图片描述

7. 递归函数

  • 递归:即函数自己调用自己的特殊写法。

(1)计算n的阶乘

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)
res = fact(5)
print(res) #120

我们可以拆解fact(5)计算的详细逻辑:

===> fact(5)
===> 5 * fact(4)
===> 5 * (4 * fact(3))
===> 5 * (4 * (3 * fact(2)))
===> 5 * (4 * (3 * (2 * fact(1))))
===> 5 * (4 * (3 * (2 * 1)))
===> 5 * (4 * (3 * 2))
===> 5 * (4 * 6)
===> 5 * 24
===> 120

8. 递推算法

  • 递推算法:通常是通过循环来实现,直接从边界出发,直到求出函数值。

(1)斐波那契数

  • 斐波那契数 :该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。例如:0 1 1 2 3 5 8…
n = input('please input number: ')
n = int(n)
def fn(n):
    if n==0:
        return 0;
    list = [0,1]
    for i in range(2,n+1):
        list.append(list[i-1]+list[i-2]);
    return list[-1]
print(fn(n))

9. 分治算法

  • 分治算法:将一个问题分成多个和原问题相似的小问题,递归解决小问题,再将结果合并以解决原来的问题。常见的分治算法:快速排序、归并排序、二分搜索。

分治算法的基本步骤包括:

  • 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题。
  • 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题。
  • 合并:将各个子问题的解合并为原问题的解。

10. 算法复杂度

  • 时间复杂度:描述了一个算法执行所需的时间,随输入数据量的增长而增长的量级。通常用大O符号(O)来表示。时间复杂度越高,意味着算法运行所需的时间越长。因此,在选择算法时,我们希望选择时间复杂度较低的算法以提高效率。

  • 空间复杂度:对一个算法在运行过程中临时占用存储空间大小的量度。空间复杂度越高,意味着算法运行所需的额外空间越大。因此,在选择算法时,我们也需要考虑其空间复杂度,以确保算法在运行时不会占用过多的空间资源。

11. python第三方库

Python使用import语句导入一个模块,导入官方模块,不需要考虑路径的问题,例如,导入系统自带的模块 math,直接导入即可。

import math

导入以后,你就可以认为math是一个指向已导入模块的变量,通过该变量,我们可以访问math模块中所定义的所有公开的函数、变量和类:

# 属性:圆周率
import math
print(math.pi) # 3.141592653589793

# 函数:次方
print(math.pow(2, 3)) # 8.0

如果希望导入模块的指定部分属性或函数,比如我们希望导入math模块的圆周率pi,那么可以使用from…import…语句。

# 属性:圆周率
from math import pi
print(pi) # 3.141592653589793

这个时候,由于pow()函数没有导入,所以是不能使用pow()函数的。如果希望导入模块里面的所有内容,那么使用from …import *语句。

from math import *
print(pi) # 3.141592653589793
print(pow(2, 3)) # 8.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1454457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G——小区搜索流程

小区搜索流程 小区搜索目标:读取到SIB1. 小区搜索流程概述:SIB1在PDSCH信道承载,承载SIB1的信道在哪个位置由PDCCH告诉,而PDCCH的基本信息由MIB告诉,MIB信息由广播信道PBCH广播出去,物理信道解调需要解调…

使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01

从源码编译 rocSolver 本人只操作过单个rocm版本的情景,20240218 ubuntu 22.04.01 1,卸载原先的rocm https://docs.amd.com/en/docs-5.1.3/deploy/linux/os-native/uninstall.html # Uninstall single-version ROCm packages sudo apt autoremove ro…

掌上新闻随心播控,HarmonyOS SDK助力新浪新闻打造精致易用的资讯服务新体验

原生智能是HarmonyOS NEXT的核心亮点之一,依托HarmonyOS SDK丰富全面的开放能力,开发者只需通过几行代码,即可快速实现AI功能。新浪新闻作为鸿蒙原生应用开发的先行者之一,从有声资讯入手,将基于Speech Kit朗读控件上线…

几种SLAM算法跑出的效果比较

以下所有的SLAM算法均使用此辆ROS小车跑。 文章目录 1.Gmapping SLAM算法构建地图2.Hector SLAM算法构建地图3.Karto SLAM算法构建地图4.Cartographer SLAM算法构建地图5.深度摄像头的建图6.rtab-map(深度双目与激光雷达构建三维建图)7.ORB-SLAM8.无奖竞猜 1.Gmapping SLAM算法…

企业计算机服务器中了eking勒索病毒怎么办?Eking勒索病毒解密数据恢复

企业的生产运营离不开数据支撑,通过数据整合可以制定合理的解决发展方向,对于企业来说,保护数据安全是一项至关重要的工作。但网络安全威胁无处不在,给企业的生产运营带来了极大困扰。近日,云天数据恢复中心接到许多企…

基于stm32单片机智能洗衣机系统设计

目前洗衣机已成为人们日常清洁衣物的主要手段,过去的洗衣机多采用机械式洗涤的模式,存在着控制方式单一,无法控制水量的多少和未实现自动进水等问题。随着物联网和传感器在多个行业更为广泛的应用和技术上的发展,为洗衣机实现智能…

基于Java+SpringBoot+vue+elementui 实现即时通讯管理系统

目录 系统简介效果图源码结构试用地址源码下载地址技术交流 博主介绍: 计算机科班人,全栈工程师,掌握C、C#、Java、Python、Android等主流编程语言,同时也熟练掌握mysql、oracle、sqlserver等主流数据库,能够为大家提供…

第三十五回 梁山泊吴用举戴宗 揭阳岭宋江逢李俊-python中用Shell通配符匹配字符串

宋江被抓住,判脊杖二十,刺配江州牢城。临走时宋太公专门叮嘱他不要入伙梁山。 宋江和差人专门挑小路走,想避开梁山,结果还是被赤发鬼刘唐守到了。大家把宋江请上山,都参拜了宋江。看宋江执意要走,吴用说自…

护眼台灯该怎么选?2024年五大爆款品牌大盘点

护眼台灯是孩子学习过程中的得力助手,除了能提高学习效率外还能保护眼睛。但一些劣质的护眼灯可能存在各种问题,列如安全耐用性差、耐腐蚀耐磨性差、无法起到保护眼睛作用、光照刺眼不适等问题,这让很多家长在购入护眼灯时犯了难,…

林浩然与杨凌芸的Java集合奇遇记

林浩然与杨凌芸的Java集合奇遇记 The Java Collection Chronicles of Lin Haoran and Yang Lingyun 在一个充满代码香气的午后,程序员男主角林浩然正在他的编程世界里挥舞着键盘剑,探索Java王国中的神秘宝藏——集合。而我们的女主角杨凌芸,作…

测试文章笔记-SQL3种优化方法

SQL语句优化: 本质:降低执行时间 **核心思路:**找到执行计划中开销较高的操作,改写SQL语句或改变表访问方式调整执行计划。 举例: 1.使用索引替代全表扫描(索引:是帮助MysQL高效获取数据的数…

自定义Linux登录自动提示语

设置提示语的方式 在Linux系统中,可以通过修改几个特定的文件来实现在用户登录时自动弹出提示语。以下是几个常用的方法: 1. 修改/etc/issue文件: 这个文件用于显示本地登录前的提示信息 sudo vi /etc/issue在项目合作的时候,…

哈希表——位图

哈希表——位图 基本概念一道面试题位图实现设置存在或不存在检查存在 解决一开始的问题 之前我们已经了解了哈希表的底层实现,今天我们来了解一下哈希表思想的衍生产物——位图。 基本概念 在了解位图之前,我们先来了解一些简单的概念。 我们都知道&a…

电视盒子什么牌子好?老烧实测2024电视盒子排行榜

电视盒子价格不贵,但功能丰富,看点播、直播,玩游戏,上网课等都不在话下,对大部分家庭来说电视盒子是必备的。不过面对众多产品的时候我们都不知道电视盒子什么牌子好,我是多年电视盒子老用户了,…

比较可相交4点结构迭代次数的顺序

( A, B )---6*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有6个节点,AB训练集各由6张二值化的图片组成,让差值结构有4个点,收敛误差7e-4,收敛199次,统计迭代次数平均值并排序。 如果行和列可以自由的变换,4个…

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(2)房屋价格预测模型搭建

下面学习一个具体的实例,关于中介根据历史房屋价格,进行房价评估和预测的方法。 大家都知道,中介要给房东和客户报价,一般人是比较有经验的,资深的经纪人,往往会报出更符合市场的价格,再进行一…

谷达冠楠电商:现在开网店能赚钱吗

随着互联网技术的迅猛发展,电子商务已成为现代商业的重要组成部分。许多人纷纷涉足网店经营,希望通过线上渠道实现创业梦想。然而,“现在开网店能赚钱吗?”这个问题的答案并不是绝对的,而是取决于多种因素。 网络市场的低门槛和广…

JWT登录验证前后端设计与实现笔记

设计内容 前端 配置全局前置路由守卫axios拦截器登录页面和主页 后端 JWT的封装登录接口中间件放行mysql数据库的连接 详细设计 路由设计 配置全局前置守卫,如果访问的是登录页面则放行,不是则进入判断是否有token,没有则拦截回到登录…

一连三部电影撤出春节档,给行业带来什么启示?

继《我们一起摇太阳》后,《红毯先生》于2月16日晚也宣布退出今年春节档。 至此,加上动画电影《黄貔:天降财神猫》,2024年春节档已有三部影片撤档,在春节档历届过往中实属少见。 其中,《红毯先生》、《我们…

安装配置NMon

NMon(Nigel’s Monitor)是一款由IBM公司提供的免费性能监控工具,专门用于监控AIX系统和Linux系统的资源使用情况 下载软件 wget http://sourceforge.net/projects/nmon/files/nmon16p_binaries.tar.gz 如果报错的话,安装提示添加…