第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.rhkb.cn/news/381759.html

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

相关文章

怎样使用 Juicer tools 的 dump 命令将.hic文件转换为交互矩阵matrix计数文件 (Windows)

创作日志: 万恶的生信…一个scHiC数据集没有提供处理好的计数文件,需要从.hic转换。Github一个个好长的文档看了好久才定位到 juicer tools 的dump命令,使用起来比想象中简单。 一、下载Juicer tools 注意:使用Juicer tools的前提…

vxe-table——实现切换页码时排序状态的回显问题(ant-design+elementUi中table排序不同时回显的bug)——js技能提升

之前写的后台管理系统,都是用的antdelement,table组件中的【排序】问题是有一定的缺陷的。 想要实现的效果: antv——table组件一次只支持一个参数的排序 如下图: 就算是可以自行将排序字段拼接到列表接口的入参中&#xff0c…

Qt实战:专栏内容介绍及目录

1、专栏介绍 Qt相比Visual Studio (VS) 的优势主要体现在跨平台能力、‌丰富的功能、‌高性能、‌现代UI设计、‌社区支持和企业支持等方面。‌ 跨平台能力:‌Qt 允许应用程序在多个操作系统上编译和运行,‌无需为每个平台编写特定的代码,‌…

设计模式第二天|设计模式创建型:工厂模式、抽象工厂模式、单例模式、建造者模式

文章目录 设计模式的分类工厂模式简单工厂定义核心俗话说优点缺点具体实现 工厂模式(Spring IOC控制反转)定义核心**组成****俗话说****实现思路****具体实现****使用场景** 抽象工厂模式**前提概念****定义****缺点****具体实现** 单例模式**定义****俗…

Django学习第一天(如何创建和运行app)

前置知识: URL组成部分详解: 一个url由以下几部分组成: scheme://host:port/path/?query-stringxxx#anchor scheme:代表的是访问的协议,一般为http或者ftp等 host:主机名,域名,…

《低代码指南》——Oracle APEX : AI在低代码开发中的创新应用

在低代码开发领域,我们正在目睹人工智能(AI)集成所带来的显著进展。Oracle公司最新推出的APEX 24.1版本,便是这一趋势的明显体现,其集成的AI功能旨在极大提高开发者的生产力,同时简化应用程序的创建过程。 Contents 将变革性的AI整合到低代码平台 将AI技术引入低代码平台…

二、BIO、NIO、直接内存与零拷贝

一、网络通信编程基础 1、Socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,是一组接口,由操作系统提供; Socket将复杂的TCP/IP协议处理和通信缓存管理都隐藏在接口后面,对用户来说就是使用简单的接口进行网络应用编程…

MySQL定时备份数据,并上传到oss

1.环境准备 1.安装阿里云的ossutil 2.安装mysql 2.编写脚本 脚本内容如下 #!/bin/bash # 数据库的配置信息,根据自己的情况进行填写 db_hostlocalhost db_usernameroot db_passwordroot db_namedb_root # oss 存贮数据的bucket地址 bucket_namerbsy-backup-buck…

SpringBoot:SpringBoot通过注解监测Controller接口

一、前言 在Spring Boot中,度量指标(Metrics)是监控和诊断应用性能与行为的重要工具。Spring Boot通过集成Micrometer和Spring Boot Actuator,提供了强大的度量指标收集与暴露功能。 二、度量指标 1. Micrometer Micrometer是一…

基于FPGA的以太网设计(2)----以太网的硬件架构(MAC+PHY)

1、概述 以太网的电路架构一般由MAC、PHY、变压器、RJ45和传输介质组成,示意图如下所示: 需要注意的是,上图是一个简化了的模型,它描述的是两台主机之间的直接连接,但在实际应用中基本都是多台主机构成的局域网,它们之间并不直接相连,而是通过交换机Switch来进行…

Linux云计算 |【第一阶段】SERVICES-DAY5

主要内容: 源码编译安装、rsync同步操作、inotify实时同步、数据库服务基础 实操前骤:(所需tools.tar.gz与users.sql) 1.两台主机设置SELinnx和关闭防火墙 setenforce 0 systemctl stop firewalld.service //停止防火墙 sy…

scss基本语法---嵌套、循环、条件(@for,@if),混入@mixin,继承@extend,导入@import,

scss是css预编译器,可以简化css代码的书写,并可以编译成css文件使用; 有关scss的安装使用可以参考:Sass语法---sass的安装和引用_引入sass-CSDN博客 嵌套、循环、条件(for,if) 嵌套 scss支持选择器的嵌套…

rk3568 OpenHarmony4.1 Launcher定制开发—桌面壁纸替换

Launcher 作为系统人机交互的首要入口,提供应用图标的显示、点击启动、卸载应用,并提供桌面布局设置以及最近任务管理等功能。本文将介绍如何使用Deveco Studio进行单独launcher定制开发、然后编译并下载到开发板,以通过Launcher修改桌面背景…

python一维表转二维表

一维表转二维表 import pandas as pd # 读取数据 product_df pd.read_csv(rD:\excelFile\practice\物品属性值一维表.csv,encodingutf-8) # print(product_df)# 将一维表转变二维 s pd.Series(list(product_df[属性值]),index[product_df[物品编号],product_df[属性名]]) …

TQSDRPI开发板教程:实现PL端的UDP回环与GPSDO

本教程将完成一个全面的UDP运行流程与GPSDO测试,从下载项目的源代码开始,通过编译过程,最终将项目部署到目标板卡上运行演示。此外,我们还介绍如何修改板卡的IP地址,以便更好地适应您的网络环境或项目需求。 首先从Gi…

使用nginx实现一个端口和ip访问多个vue前端

前言:由于安全组要求,前端页面只开放一个端口,但是项目有多个前端,此前一直使用的是一个前端使用单独一个端口进行访问,现在需要调整。 需要实现:这里以80端口为例,两个前端分别是:p…

Zabbix监控系统:zabbix服务部署+基于Proxy分布式部署+zabbix主动与被动监控模式

一、Zabbix概述 1.1 简介 zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix 能监视各种网络参数,保证服务器系统的安全运营,提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 zabbix…

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(三)基变换与坐标变换;微分方程;李群和李代数;雅可比矩阵

一、基变换与坐标变换 字小,事不小。 因为第一反应:坐标咋变,坐标轴就咋变呀。事实却与我们想象的相反。这俩互为逆矩阵。 第一次读没有读明白,后面到事上才明白。 起因是多传感器标定:多传感器,就代表了多个坐标系,多个基底。激光雷达和imu标定。这个标定程序,网上,…

【VSCode】安装 【ESP-IDF】插件及【ESP32-S3】新建工程和工程配置

一、搭建基础工程 二、基础工程的文件架构解析 三、调试相关工具介绍 1、串口下载2、JTAG 下载与调试 四、工程的文件架构解析 五、基础工程配置 一、搭建基础工程 在 VS Code 中新建 ESP-IDF 基础工程的步骤如下: 1、启动 VS Code 并打开命令面板 按下“Ctrl…

1小时上手Alibaba Sentinel流控安全组件

微服务的雪崩效应 假如我们开发了一套分布式应用系统,前端应用分别向A/H/I/P四个服务发起调用请求: 但随着时间推移,假如服务 I 因为优化问题,导致需要 20 秒才能返回响应,这就必然会导致20秒内该请求线程会一直处于阻…