第2章-数学建模

目录

一、数据类型

【函数】:

(1)find()、rfind()、index()、rindex()、count()

(2)split()、rsplit()

(3)join()

(4)strip()、rstrip()、lstrip()

(5)startswith()、endswith()

二、列表 [:]

三、元组

四、集合

五、字典


一、数据类型

1.Python中有6种标准的数据类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、set(集合)和dictionary(字典)。

(1)数字:①整型(int)

             ②浮点型(float):整数部分和小数部分,也可以使用科学计数法表示

             ③复数(complex):实部和虚部,a+bj或complex(a,b),复数的实部和虚部都是浮点型

             ④布尔型(bool):True和False作为关键字,值分别对应0和1

【数据类型转换】:

        (1)int(x)将x转换为一个整数。

        (2)float(x)将x转换为一个浮点数。

       (3)complex(x, y)将x和y转换为一个复数,实数部分为x,虚数部分为y。x和y是数字表达式。

(2)字符串:''或'

截取字符串[0:]

从左往右截取:0开始,右往左:-1开始

【函数】:

(1)find()、rfind()、index()、rindex()、count()

find()用来查找一个字符串在另一个字符串指定的范围中首次出现的位置,如果不存在则返回-1;

   rfind()方法用来查找一个字符串在另一个字符串指定的范围中最后一次出现的位置,如果不存在则返回-1;

index()方法用来返回一个字符串在另一个字符串指定范围中首次出现的位置,如果不存在则抛出异常;

   rindex()方法用来返回一个字符串在另一个字符串指定范围中最后一次出现的位置,如果不存在则抛出异常;

count()方法用来返回一个字符串在另一个字符串中出现的次数,如果不存在则返回0。

(2)split()、rsplit()

字符串对象的split()和rsplit()方法分别用来以指定字符为分隔符,从字符串左端和右端开始将其分割成多个字符串,并返回包含分隔结果的列表。

对于split()和rsplit()方法,如果不指定分隔符,则字符串中的任何空白字符(包括空格、换行符、制表符等)的连续出现都将被认为是分隔符,并且自动删除字符串两侧的空白字符,返回包含最终分隔结果的列表。

(3)join()

字符串的join()方法用来将列表中多个字符串进行连接,并在相邻两个字符串之间插入指定字符,返回新字符串。

(4)strip()、rstrip()、lstrip()

这几个方法分别用来删除两端、右端或左端连续的空白字符或指定字符。

(5)startswith()、endswith()

这两个方法用来判断字符串是否以指定字符串开始或结束,可以接收两个整数参数来限定字符串的检测范围。

另外,这两个方法还可以接收一个字符串元组作为参数来表示前缀或后缀。

二、列表 [:]

[1:3]代表截取[1,2]元素,即:[1:3)

(1)列表推导式:在逻辑上等价于一个循环语句

os.listdir()用来列出指定文件夹中所有文件和子文件夹清单,

字符串方法endswith()用来测试字符串是否以指定的字符串结束。

三、元组

    元组是一个不可改变的列表。不可改变意味着它不能被修改。元组只是逗号分隔的对象序列(不带括号的列表)。为了增加代码的可读性,通常将元组放在一对圆括号中:

四、集合

1.集合(set)是一个无序不重复元素的序列。基本功能是进行成员关系测试和删除重复元素。         在Python中,创建集合有两种方式:一种是用一对大括号将多个用逗号分隔的数据括起来;另一类是使用set()函数,该函数可以将字符串、列表、元组等类型的数据转换成集合类型的数据。

2.创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。

3.集合中不能有相同元素,如果在创建集合时有重复元素,Python会自动删除重复的元素。集合的这个特性非常有用,例如,要删除列表中大量重复的元素,可以先用set()函数将列表转换成集合,再用list()函数将集合转换成列表,操作效率非常高。

五、字典

   字典(dictionary)是Python中另一个非常有用的内置数据类型。前面介绍的列表是有序的对象集合,字典是无序的对象集合。两者的区别在于:字典中的元素是通过键来存取的,而不是通过索引值存取的。

字典是一种映射类型,字典用“{}”标识,它是一个无序的键(key):值(value)对集合。在同一个字典中,键(key)必须是唯一的,但是值则不必唯一,值可以取任何数据类型但键必须是不可变的,如字符串、数字或元组。

字典对象提供了一个get()方法用来返回指定“键”对应的“值”,并且允许指定该键不存在时返回特定的“值”。

可以对字典对象进行迭代或者遍历,默认是遍历字典的“键”,如果需要遍历字典的元素必须使用字典对象的items()方法明确说明,如果需要遍历字典的“值”则必须使用字典对象的values()方法明确说明。

六、string库中

ascii_letters表示英文大小写字符,digits表示10个数字字符。

join(…)的作用是使用空字符把参数中的字符串连接起来成为一个长字符串。最后使用for循环遍历该长字符串中的每个字符,把每个已出现字符的次数加1,如果是第一次出现,则已出现次数为0。

choice()用于从多个元素中随机选择一个

七、函数

1.函数分内置函数、第三方模块函数和自定义函数

内置函数是Python系统自带的函数,模块函数NumPy等库中的函数。

Python中定义函数的语法如下:
def functionName(formalParameters):functionBody

函数通常使用三个单引号'''...'''来注释说明函数;函数体内容不可为空,可用pass来表示空语句。在函数调用时,函数名后面括号中的变量名称称为实际参数(简称实参)。

定义函数时需要注意以下两点:

(1)函数定义必须放在函数调用前,否则编译器会由于找不到该函数而报错。

(2)返回值不是必需的,如果没有return语句,则Python默认返回值None。

2.匿名函数

所谓匿名函数,是指不以def语句定义的没有名称的函数,它在使用时临时声明、立刻执行,其特点是执行效率高。

Python使用lambda来创建匿名函数,它是一个可以接收任意多个参数并且返回单个表达式值的函数,其语法格式为:

lambda arg1[,arg2,…,argn]:expression

2.1模块的导入和使用

随着程序的变大及代码的增多,为了更好地维护程序,一般会把代码进行分类,分别放在不同的文件中。公共类、函数都可以放在独立的文件中,这样其他多个程序都可以使用,而不必把这些公共的类、函数等在每个程序中复制一份,这样独立的文件就叫做模块。

标准库中有与时间相关的time、datetime模块,随机数的random模块,与操作系统交互的os模块,对Python解释器相关操作的sys模块,数学计算的math模块等几十个模块。

(1)标准库与扩展库中对象的导入与使用

Python标准库和扩展库中的对象必须先导入才能使用,导入方式如下。

  •  import 模块名 [as 别名]

使用时需要在对象之前加上模块名作为前缀,必须以“模块名.对象名”的形式进行访问。如果模块名字很长,可以为导入的模块设置一个别名,然后使用“别名.对象名”的方式来使用其中的对象。 

例2.15  加载模块示例。
#程序文件ex2_15.py
import math               #导入标准库math
import random             #导入标准库random
import numpy.random as nr  #导入numpy库中的random模块
a=math.gcd(12,21)          #计算最大公约数,a=3
b=random.randint(0,2)       #获得[0,2]区间上的随机整数
c=nr.randint(0, 2, (4, 3))      #获得[0,2)区间上的4×3随机整数矩阵
print(a); print(b); print(c)      #输出a,b,c的值

  • from 模块名 import 对象名 [as 别名]

仅导入明确指定的对象,并且可以为导入的对象起一个别名。这种导入方式可以减少查询次数,提高访问速度,同时也可以减少程序员需要输入的代码量,不需要使用模块名作为前缀。  

例2.16  导入模块示例。
#程序文件ex2_16.py
from random import sample
from numpy.random import randint
a=sample(range(10), 5)  #在[0,9]区间上选择不重复的5个整数
b=randint(0, 10, 5)      #在[0,9]区间上生成5个随机整数
print(a); print(b) 

  from 模块名 import *(不推荐)

常用内置函数用法

内置函数不需要额外导入任何模块即可直接使用,具有非常快的运行速度,推荐优先使用。

使用下面的语句可以查看所有内置函数和内置对象。

dir(_builtins_)

使用help(函数名)可以查看某个函数的用法。

 2.2排序
例2.19  sorted()使用示例。
#程序文件ex2_19.py
import numpy.random as nr
x1=list(range(9,21))
nr.shuffle(x1)       #shuffle()用来随机打乱顺序
x2=sorted(x1)        #按照从小到大排序
x3=sorted(x1,reverse=True)  #按照从大到小排序
x4=sorted(x1, key=lambda item: len(str(item)))  #以指定的规则排序
print(x1); print(x2); print(x3); print(x4)
2.3枚举
2.4map()函数

函数map(func, *iterables)把一个函数func依次映射到一个可迭代对象iterables的每个元素上,并返回一个可迭代的map对象作为结果,map对象中每个元素是iterables中元素经过函数func处理后的结果。

2.5filter()函数

内置函数filter()将一个单参数函数作用到一个序列上,返回该序列中使得该函数取值为True的那些元素组成的filter对象,可以把filter对象转换为列表、元组、集合,也可以直接使用for循环遍历其中的元素。

2.6zip()函数

zip()函数用来把多个可迭代对象中对应位置上的元素压缩在一起,返回一个可迭代的zip对象,其中每个元素都是包含原来多个可迭代对象对应位置上元素的元组,最终结果中包含的元素个数取决于所有参数序列或可迭代对象中最短的那个。

八、NumPy库

NumPy提供了两种基本的对象:

ndarray:存储单一数据类型的多维数组;

ufunc:能够对数组进行处理的函数。

在使用NumPy之前,首先必须导入该函数库,导入方式如下:

import numpy as np

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

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

相关文章

【Python】sqlite加密库pysqlcipher3编译安装步骤

目录 说明准备工作openssl编译sqlite tclsetup.py修改quote_argumentopenssl路径 安装加密示例代码测试附录参考 说明 pysqlcipher3是针对Python 3使用的pysqlcipher的一个分支, 尽管仍然维护对Python 2的支持。它仍然处于测试阶段, 尽管这个库包含的最…

请你谈谈:spring bean的生命周期 - 阶段5:BeanPostProcessor前置处理-自定义初始化逻辑-BeanPostProcess后置处理

BeanPostProcessor的postProcessBeforeInitialization方法是在bean的依赖注入(即属性填充)完成后,但在bean的初始化回调(如PostConstruct注解的方法或InitializingBean接口的afterPropertiesSet方法)之前被调用的。 具…

sql_exporter通过sql收集业务数据并通过prometheus+grafana展示

下载并解压安装sql_exporter wget https://github.com/free/sql_exporter/releases/download/0.5/sql_exporter-0.5.linux-amd64.tar.gz #解压 tar xvf sql_exporter-0.5.linux-amd64.tar.gz -C /usr/local/修改主配置文件 cd /usr/local/ mv sql_exporter-0.5.linux-amd64 s…

google 浏览器插件开发简单学习案例:TodoList

参考: google插件支持: https://blog.csdn.net/weixin_42357472/article/details/140412993 这里是把前面做的TodoList做成google插件,具体网页可以参考下面链接 TodoList网页: https://blog.csdn.net/weixin_42357472/article/de…

SwiftSage:参考人脑双系统,结合快思和慢想的智能体,解决复杂任务同时降低成本

SwiftSage:参考人脑双系统,结合快思和慢想的智能体,解决复杂任务同时降低成本 提出背景解法拆解子解法1:SWIFT模块子解法2:SAGE模块模块整合和决策树 SwiftSage 工作流程效果 论文:SWIFTSAGE: A Generative…

5G赋能新能源,工业5G路由器实现充电桩远程高效管理

随着5G技术的广泛应用,新能源充电桩的5G应用正逐步构建起全新的生态系统。在数字化转型的浪潮中,新能源充电桩行业正迎来数字化改革。工业5G路由器的引入,为充电桩的远程管理提供了强有力的技术支持,新能源充电桩5G路由器网络部署…

共享充电桩语音ic方案,展现它的“说话”的能力

随着电动汽车的普及,充电设施的便捷性、智能化需求日益凸显,共享充电桩语音IC应运而生,成为连接人与机器、实现智能交互的桥梁。本文将为大家介绍共享充电桩语音ic的概述、应用词条以及优势,希望能够帮助您。 一、NV170D语音ic概述…

选购指南:如何挑选最适合的快手矩阵系统

在短视频风潮席卷的今天,快手作为其中的佼佼者,吸引了无数创作者和商家的目光。然而,想要在快手上脱颖而出,仅凭内容和创意是远远不够的。一个强大且适合的快手矩阵系统,将是你通往成功的重要钥匙。那么,如…

SEO域名外链生成工具PHP源码

两款不同版本的SEO超级外链工具PHP源码,网址外链-seo外链推广工具源码,SEO网站推广外链工具源码SEO域名外链生成工具PHP源码 _ 博客趣两款不同版本的SEO超级外链工具PHP源码,网址外链-seo外链推广工具源码,SEO网站推广外链工具源码…

Web前端:HTML篇(一)

HTML简介: 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器…

批量打断相交线——ArcGISpro 解决方法

在数据处理,特别是地理空间数据处理或是任何涉及图形和线条分析的场景中,有时候需要把相交的线全部从交点打断一个常见的需求。这个过程对于后续的分析、编辑、或是可视化展现都至关重要,因为它可以确保每条线都是独立的,避免了因…

.NET下支持多框架的托盘功能NotifyIconEx(WPF / WinForms / Avalonia / WinUI / MAUI / Wice)

支持 WPF / WinForms / Avalonia / WinUI / MAUI / Wice 应用。 先看效果: using NotifyIconEx;var notifyIcon new NotifyIcon() {Text "NotifyIcon",Icon Icon.ExtractAssociatedIcon(Process.GetCurrentProcess().MainModule?.FileName!)! }; not…

【论文速读】| LLMCloudHunter:利用大语言模型(LLMs)从基于云的网络威胁情报(CTI)中自动提取检测规则

本次分享论文:LLMCloudHunter: Harnessing LLMs for Automated Extraction of Detection Rules from Cloud-Based CTI 基本信息 原文作者:Yuval Schwartz, Lavi Benshimol, Dudu Mimran, Yuval Elovici, Asaf Shabtai 作者单位:Ben-Gurion…

第一弹:基于ABAP OLE技术实现对服务器文件进行读写操作

前言 最近遇到这样一个需求,需要对BW服务器上的文件进行下载的同时写入每个用户相对应的数据。之前的服务器模版是一个死模版,对于这样的要求,我就想到了OLE技术,那么什么是OLE技术呢? 一、什么是OLE技术&#xff1f…

Python 全栈体系【三阶】(三)

第一章 Django 七、静态文件 1. 概述 静态文件是指在WEB应用中的图像文件、CSS文件、Javascript文件。 2. 静态文件的配置 settings.py中关于静态文件的配置如下: STATICFILES_DIRS [BASE_DIR , static, ]STATIC_URL /static/其中: STATICFILES…

C++——模板初阶 | STL简介

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan.                        …

便携气象站:科技助力气象观测

在科技飞速发展的今天,便携气象站以其轻便、高效、全面的特点,正逐渐改变着气象观测的传统模式。这款小巧而强大的设备,不仅为气象学研究和气象灾害预警提供了有力支持,更为户外活动、农业生产等领域带来了诸多便利。 便携气象站是…

Redis+Lua脚本+AOP+反射+自定义注解,打造我司内部基础架构限流组件

定义注解 Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Documented public interface RedisLimitAnnotation {/*** 资源的key,唯一* 作用:不同的接口,不同的流量控制*/String key() default "";/*** 最多的访问限制次数…

算法日记day 17(二叉树的最大、最小深度)

一、二叉树的最大深度 题目: 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2&#xff1…

STM32智能机器人控制系统教程

目录 引言环境准备智能机器人控制系统基础代码实现:实现智能机器人控制系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与导航系统实现 4.4 用户界面与数据可视化应用场景:机器人控制与优化问题解决方案与优化收尾与总结 1. 引言 智能机器人控…