python——第九天

今日目标:

 偏函数

 递归

 字符串对象

 切片

 常见排序和查找

 

 

偏函数:

 python中存在一种函数的特殊使用,称为偏函数

 如果在调用某个函数时,恰好某一个或者,某一些参数都是一个固定值(正好不是默认值),

 为了方便调用,我们可以通过特殊手段修改默认值

from functools import partial

新的函数 = partial(原函数名称, 参数=新值)


递归(recursion):
递归就是函数调用函数本身


求 1~n的和:


注意:递归虽然非常好用,可以将一些复杂的问题,极度简化,使得可以通过递归解决一些复杂问题,
但是递归是会重复压栈调用相同函数,所以栈内存会被大量占据,无法释放,
容易出现:“栈溢出错误”(StackOverFlow)


斐波那契数列:
第三个元素,是前两个元素之和
0 1
1 1
1 2


求第n个项的元素是多少?


案例:斐波那契数列的实现



思考题:
1、青蛙跳楼梯
2、不死兔子:
一对刚刚出生的兔子,四个月之后,会称为成年的兔子,成年兔子每月会生一对小兔子
等N月时,共有多少对兔子




字符串对象:
字符串是基本数据类型,讲解了几种常见的创建方式
"字符串"
'字符串'
"""
字符串
"""
'''
字符串
'''

str() 创建或者转换其他类型为字符串
len(字符串) 获取字符串的长度

 字符串是一个有序的序列(sequence),也是一个可迭代对象,也有下标

  字符串[下标] # 某一个位置的字符

 

 通过while、for循环进行遍历

 

 字符常量:字符串本质是一种常量

 

 

全局函数: 

 enumerate(可迭代对象)

 

 

python是一门面向对象的编程语言,在面向对象的编程语言看来:

 万物皆对象

 

字符串对象的常见方法和属性:

 ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 

 'expandtabs', 'find', 'format', 'format_map', 'index', 

 

 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 

 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 

 

 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 

 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind',

 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 

 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate',

 'upper', 'zfill']

 

 

 |-- capitalize # 首字母大小

 |-- center # 文本居中对齐

 |-- ljust # 文本左对齐

 |-- rjust # 文本右对齐

 

 |-- count()

 |-- endswith()

 |-- startswith()

 |-- format()

 

 |-- find()

 |-- index()  

 |-- rindex()

 |-- rfind()

 

 |-- lstrip()

 |-- rstrip()

 |-- rstrip()

 

 

 |-- upper()

 |-- lower()

 

 |-- join()

 |-- split()

 

 

 |-- maketrans()

 |-- translate()

 

 

 

 |-- encode() # 编码转换,注意编码!!!!

 

 

 字节类型中的转换函数

 

 |-- decode()

 

 

 

 

切片操作:

 python提供的用来切割和分割有序序列的一种技术

  list、tuple、字符串

 

 切片操作是基于下标进行切割

 

 对象[num1:] # 返回num1到结束的值

 对象[num1:num2] # 返回[num1, num2)的所有值

 对象[num1:num2:step] # step是步长,步长为负数,表示从右向左切割

 

 

注意:python是支持付索引操作的!!!!

 

 

 

课堂案例练习:

 输入字符串,判断该字符串是否是回文字符串

 

 

 

排序:

 为数据排序,目的让数据有序,有序的数据可以使用各种查找算法,实现快速查找

 

 冒泡排序

 选择排序

 插入排序

 

 大O表示法

 时间复杂度:O(1) O(logN) O(n) O(nlogN) O(n^2)

 空间复杂度:

 

 算法稳定度:

 

 

 

冒泡排序:

 [1, 3, 2, 10, -8, 9, -30, 7] n 最多n - 1

 

 [1, 2, 3, -8, 9, -30, 7, 10] # 第1个最大值

 [1, 2, -8, 3,-30, 7, 9, 10] # 第2个最大值

 [1, -8, 2, -30, 3, 7, 9, 10] # 第3个最大值

 [-8, 1, -30, 2, 3, 7, 9, 10] # 第4个最大值

 [-8, -30, 1, 2, 3, 7, 9, 10] # 第5个最大值

 [-30, -8, 1, 2, 3, 7, 9, 10] # 第6个最大值

 

 两两比较,找到最大值!!!

ed7afac2a86c4d24a614780897269a67.jpg

 递归:

b8737b1413bb49b78d119db63cb676e6.jpg

 

ab37b99cd6394b47afe193dc5c217234.jpg

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux常用命令——bye命令

在线Linux命令查询工具 bye 命令用于中断FTP连线并结束程序。。 补充说明 bye命令在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行。 语法 bye实例 bye在线Linux命令查询工具

从0开始学习JavaScript--JavaScript 数字与日期

JavaScript中的数字和日期是处理数值计算和时间相关任务的核心。本文将深入研究JavaScript中数字的表示、常见运算,以及日期对象的创建、格式化等操作,并通过丰富的示例代码,可以更全面地了解和应用这些概念。 JavaScript数字基础 JavaScri…

【RocketMq系列-01】RocketMq安装和基本概念

RocketMq系列整体栏目 内容链接地址【一】RocketMq安装和基本概念https://zhenghuisheng.blog.csdn.net/article/details/134486709 RocketMq安装和基本概念 一,RocketMq安装和基本概念1,RocketMq基本安装(本地安装)2,Rocketmq的核心概念2.1&…

Linux使用ifconifg命令,没有显示ens33

Linux使用ifconifg命令,没有显示ens33 1.问题2.步骤2.1 查看虚拟机的组件是否启动了2.2 修改网络配置文件 ONBOOT修改为yes2.3 重启网络2.4 修改网络服务配置 3.解决 1.问题 打开虚拟机准备使用xshell连接时发现连接失败,在机器上查看ip发现ens33不现实…

Mysql主从搭建

Mysql主从搭建 1.Mysql下载1.1 查看操作系统2.2 下载mysql安装包 2.Mysql安装2.1 解压2.2 目录重命名2.3 创建data,存储文件2.4 创建用户组2.5 授权用户2.6 配置环境变量2.7 编辑my.cnf2.8 创建相关目录和文件2.9 初始化数据库2.10 复制mysql.server到/etc/init.d/下…

安卓环境搭建及运行安卓应用

1 jdk安装 安卓项目也是java开发的,运行在虚拟器上,安装jdk及运行的时候,就会带上虚拟器 jdk前面已经讲过,不在讲解 2 下载安装androj studio https://developer.android.google.cn/studio?hlzh-cn 下载下来,双击…

Shell脚本:Linux Shell脚本学习指南(第一部分Shell基础)一

你好,欢迎来到「Linux Shell脚本」学习专题,你将享受到免费的 Shell 编程资料,以及很棒的浏览体验。 这套 Shell 脚本学习指南针对初学者编写,它通俗易懂,深入浅出,不仅讲解了基本知识,还深入底…

数据采集与大数据架构分享

实现场景 要实现亿级数据的长期收集更新,并对采集后的数据进行整理和加工,用于人工智能的训练数据素材集。 数据采集 java支持的爬虫框架还是有很多的,如:webMagic、Spider、Jsoup等添加链接描述 pipeline处理管道 数据并发开发…

供应链|顶刊MSOM论文解读:服务竞争下的库存共享

问题背景 在汽车、玩具等行业中,零售商之间的库存共享变得十分常见。库存共享可以解决由需求不确定导致的库存错配问题。如果零售商之间同意共享库存,那么当需求较少、自身库存过剩时,可以将过剩库存卖给其他零售商;反之&#xf…

WinForms C# 导入和导出 CSV 文件 Spread.NET

使用 WinForms C# 和 VB.NET 导入和导出 CSV 文件 2023 年 11 月 17 日 使用 Spread.NET 直接在 .NET WinForms 应用程序中处理 CSV 文件。 Spread.NET可帮助您创建电子表格、网格、仪表板和表单。它包括一个强大的计算引擎,具有 450 多个函数以及导入和导出 Micros…

iptables详解:链、表、表链关系、规则的基本使用

目录 防火墙基本概念 什么是防火墙? Netfilter与iptables的关系 链的概念 表的概念 表链关系 规则的概念 查询规则 添加规则 删除iptables中的记录 修改规则 更详细的命令(5链4表) 防火墙基本概念 什么是防火墙? 在…

在VS Code中使用VIM

文章目录 安装和基本使用设置 安装和基本使用 VIM是VS Code的强大对手,其简化版本VI是Linux内置的文本编辑器,堪称VS Code问世之前最流行的编辑器,也是VS Code问世之后,我仍在使用的编辑器。 对VIM无法割舍的原因有二&#xff0…

Python中,我们可以使用pandas和numpy库对Excel数据进行预处理,包括读取数据、数据清洗、异常值剔除等

文章目录 一、什么是数据预处理二、对excel数据进行详细的数据预处理操作总结 一、什么是数据预处理 数据预处理是一种对数据进行清洗、整理、转换等操作的过程,旨在提高数据质量,使其适应模型的需求,从而改进数据挖掘或机器学习的结果。 数…

【LLM】基于LLM的agent应用(更新中)

note 在未来,Agent 还会具备更多的可扩展的空间。 就 Observation 而言,Agent 可以从通过文本输入来观察来理解世界到听觉和视觉的集成;就 Action 而言,Agent 在具身智能的应用场景下,对各种器械进行驱动和操作。 Age…

从0开始学习JavaScript--JavaScript 字符串与文本内容使用

JavaScript中的字符串和文本内容处理是前端开发中的核心技能之一。本文将深入研究字符串的创建、操作,以及文本内容的获取、修改等操作,并通过丰富的示例代码,帮助读者更全面地了解和应用这些概念。 JavaScript 字符串基础 字符串是JavaScr…

Nacos注册表解读

基本介绍 在 Nacos 中,注册表是其中一个重要的组件,用于管理服务的注册和发现。 注册表是一个存储服务实例信息的数据库,它记录了所有已注册的服务实例的相关信息,包括服务名称、IP 地址、端口号等。 通过注册表,服…

定时获取公网ip并发送邮件提醒

前一段时间路由器刷的老毛子固件“穿透服务”中定时更新阿里DDNS失败了,用了很久第一次遇到。所以需要做个备用的措施用来实时获取公网ip信息 1、基于python实现 开启邮箱的SMTP功能拿到授权码(不是登录密码) #!/usr/bin/python # -*- coding: UTF-8 -*- import …

2023年中职“网络安全“—Web 渗透测试①

2023年中职"网络安全"—Web 渗透测试① Web 渗透测试任务环境说明:1.访问地址http://靶机IP/task1,分析页面内容,获取flag值,Flag格式为flag{xxx};2.访问地址http://靶机IP/task2,访问登录页面。…

判断序列值是否单调递增 PandasSeries中的方法:is_monotonic_increasing

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断序列值是否单调递增 PandasSeries中的方法: is_monotonic_increasing 选择题 请问下列程序运行的的结果是: import pandas as pd s1 pd.Series([1, 2, 5]) prin…

机器学习赋予用户“超人”的能力来打开和控制虚拟现实中的工具

原创 | 文 BFT机器人 最近,剑桥的研究人员开发了一种虚拟现实应用程序,只需用户手部的移动即可打开和控制一系列3D建模工具。 来自剑桥大学的研究人员利用机器学习开发了“HotGestures”类似于许多桌面应用程序中使用的热键(快捷键&#xff…