【python处理数据的函数】---误区2

python是 Guido van Rossum设计的一款面向对象的编程语言。首次发布时间为1991 年 2 月。受到 C 与 C++、Java 与 Perl、Lisp 与 Haskell语言的启示,但 ABC 语言对 Python语 言有主要的影响,Python 的创立者吉多·范罗苏姆(Guido van Rossum)在 1980 年代中期曾为 ABC 系统工作了多年,ABC 是一种指令式通用程式语言和编程环境。

python也影响了 Apache Groovy、JavaScript、 Ruby 与 Swift的发展。

python特征:

  • 解释的、高级的、通用的编程语言
  • 面向对象的编程语言
  • 过程式、函数式、结构化和反射式编程语言

一、数据结构

1、 关于字符串

 字符串(string)是一种不可变的数据类型,用于表示文本信息。字符串是由一系列字符组成的,这些字符可以是字母、数字、标点符号或特殊字符。在 Python 中,字符串可以用单引号(')、双引号(")或三引号(''' 或 """)来表示。

字符串是 Python 编程中非常重要的部分,它们常常用于:

  • 存储文本数据。
  • 显示信息给用户。
  • 处理和分析文本内容(如分割、替换、查找子字符串等)。

字符串有很多内置的方法(functions)和操作符(operators)可以用来操作它们。例如:

+ 操作符用于连接两个字符串。
* 操作符用于重复字符串。
in 关键字用于检查一个字符串是否包含另一个子字符串。
len() 函数用于获取字符串的长度。
str.upper()、str.lower() 等方法用于转换字符串的大小写。
str.split() 方法用于将字符串分割成列表。
str.replace() 方法用于替换字符串中的子字符串。

字符串是不可变的,这意味着你不能直接修改字符串中的某个字符。但是,你可以创建新的字符串来反映你想要的修改。例如:
示例:

s = "hello"
print(s) #hello
s = s.replace("e", "a")  # 创建新的字符串 "hallo" 并赋值给 s
print(s) #hallo
 在这个例子中,replace() 方法返回一个新的字符串,其中所有的 "e" 都被替换成了 "a",然后这个新字符串被赋值给了变量 s。原始的字符串 "hello" 并没有改变,因为字符串是不可变的。

2、关于字典

字典(dictionary)是一种可存储键值对(key-value pair)的数据结构。字典中的每个元素都包含一个键和一个值,键用于唯一标识元素,而值是与该键相关联的数据。你可以使用键来访问、修改或删除对应的值。

字典使用大括号 {} 来表示,其中每个键值对使用冒号 : 分隔,而键值对之间使用逗号 , 分隔。
示例:

# 创建一个字典
my_dict = {"name": "Alice","age": 30,"city": "New York"
}# 访问字典中的值
print(my_dict["name"])  # 输出:Alice
print(my_dict["age"])  # 输出:30# 修改字典中的值
my_dict["age"] = 31
print(my_dict["age"])  # 输出:31# 添加新的键值对
my_dict["country"] = "USA"
print(my_dict)  # 输出:{'name': 'Alice', 'age': 31, 'city': 'New York', 'country': 'USA'}# 检查键是否存在于字典中
if "city" in my_dict:print("City is in the dictionary.")# 删除键值对
del my_dict["city"]
print(my_dict)  # 输出:{'name': 'Alice', 'age': 31, 'country': 'USA'}

二、关于函数

1、format() 函数

format() 函数在 Python 中是一个用于字符串格式化的强大工具。它返回一个格式化后的字符串。这个函数允许创建复杂的字符串模板,并将各种数据类型插入到这些模板中。
format() 有两种用法:
1、 基本用法
通过 {} 占位符在字符串中定义变量位置,然后使用 format() 方法插入值。

2、命名参数
也可为 {} 占位符提供名称,并在 format() 方法中使用这些名称来插入值

3、支持更复杂的格式化选项,例如指定字段宽度、精度、转换类型等
示例:

str1 = "Hello, {}!"
str2 = str1.format("python")
print(str2)  # 输出:Hello, python!str1 = "Hello, {name}!"
str2 = str1.format(name="python")
print(str2)  # 输出:Hello, python!template = "The value is {value:.2f}."
result = template.format(value=3.14159)
print(result)  # 输出:The value is 3.14.

综上,format() 函数返回一个根据提供的参数格式化后的字符串。它是 Python 中进行字符串格式化的强大工具之一。

2、round()函数

round()函数用于对数字进行四舍五入。它接受两个参数:要四舍五入的数字以及要保留的小数位数。
语法:

round(number, ndigits)

number 是要进行四舍五入的数字。
ndigits 是可选参数,表示要保留的小数位数。如果省略该参数,round()函数会将数字四舍五入到最接近的整数。

示例:

# 四舍五入到整数
result = round(3.14159)
print(result)  # 输出:3# 四舍五入到指定的小数位数
result = round(3.14159, 2)
print(result)  # 输出:3.14# 对负数进行四舍五入
result = round(-3.14159, 2)
print(result)  # 输出:-3.14#round()函数还可以与变量和表达式结合使用,并在需要时进行数值计算或数据分析。
data = [1.2, 2.3, 3.4, 4.5, 5.6]
mean = round(sum(data) / len(data), 2)
print(mean)  # 输出:3.4

3、 trunc() 方法

math 模块中的 trunc() 方法用于返回数字的整数部分,即去除小数部分。这与向下取整 (//) 或四舍五入 (round()) 不同。trunc() 总是简单地去除小数部分,而不考虑小数部分的大小。

示例:

import mathprint(type(math.trunc(7.2))) #输出:<class 'int'>
print(math.trunc(7.2))  # 输出:7
print(math.trunc(-7.2))  # 输出:-7
print(math.trunc(3.0))  # 输出:3

以上示例中,无论数字是正数还是负数,trunc() 都会返回其整数部分。
trunc() 总是向零方向截断数字。这与 // 运算符(整数除法)的行为相似,但 trunc() 可以用于浮点数。

import mathprint(math.trunc(7.2))  # 输出:7
print(7.2//1.0)  #7.0
print(7.2//1)    #7.0
print(7//1)  #7

4、内置 len() 函数

用于字符串长度获取

mystr = "Hello, World!"
length = len(mystr)
print(length) # 输出:13

三、知识点

1、print(0.1 + 0.2 == 0.3) 这段代码会返回 False。

原因:浮点数的计算可能会受到精度问题的影响。
当将两个浮点数相加时,由于计算机内部表示浮点数的限制,结果可能并不完全精确。在这个例子中,0.1 + 0.2 的结果可能是一个接近 0.3 但并不完全等于 0.3 的浮点数。

可使用 math 的 isclose 代替,示例如下:

import math
print(0.1 + 0.2 == 0.3) #输出:False
print(math.isclose(0.1 + 0.2, 0.3))  #输出:True

2、复数的表达形式

(1)代数形式
z=a+bi
(2)极坐标形式(三角形式)
z=r(cosθ+isinθ)

在python中没有极坐标形式,故可采用以下方式:

k1 = 2 + 3J
k2 = complex(2, 3)
k3 = 2 + 3j
print(k1) # 输出:(2+3j)
print(k2) # 输出:(2+3j)
print(k3) # 输出:(2+3j)

3、inf 的类型是float
python 中的正无穷或负无穷,使用 float(“inf”) 或 float(“-inf”) 来表示。

4、系统将函数调用的参数和局部变量存放在内存的栈(stack)中。

5、假设 i 为 5,j 为 4,i + j 类似于i.add(j)
常见的做法是直接使用 + 运算符,Python会自动调用 add 方法。

6、包含关系
通常使用 in 运算符,_Python会自动调用__contains__方法。

示例:

s1 = "hello"  
s2 = "lo"  # 使用 __contains__ 方法  
result = s1.__contains__(s2)  
print(result)  # 输出: True  # 使用 in 运算符,这实际上也是调用 __contains__ 方法  
result = s2 in s1  
print(result)  # 输出: True

7、生成所有字母:string.ascii_letters

import stringall_ascii_letters = string.ascii_letters
all_ascii_letters2 = all_ascii_letters = string.ascii_lowercase + string.ascii_uppercase
print(all_ascii_letters)
print(all_ascii_letters2)

运行结果:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

string.ascii_lowercase 的值是 ‘abcdefghijklmnopqrstuvwxyz’。
string.ascii_uppercase 的值是 ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’。

8、print(0xA + 0xB + 0xC) #输出:33
以0x或0X开头的数字,它表示这是一个十六进制数。Python会将其自动转换为相应的十进制数,然后执行算术运算

9、比较
比较操作是一种基本的操作,它允许我们比较两个或多个值,并返回一个布尔值(True或False)来表示比较的结果。

哪个函数用于比较任意两个字典(例如 dict1 和 dict2 )的元素是否相等?

operator.eq(dict1, dict2)

列表:


a = [1, 2]
b = [2, 3]
import operator
print(operator.eq(a, b)) #False
print(a==b) #False

10、转换
以下哪个函数将单个字符转换为其在 python 中 ASCII 数值?
ord(x)

11、random 模块

(1)随机生成数字:
random.randrange(3) :用于生成一个介于0(包括)和3(不包括)之间的随机整数。它会返回0、1或2这三个数中的任意一个。

注意,random.randrange(n) 的行为与 random.randint(0, n-1) 是相同的。

  • randrange 通常用于非负的结束范围,且不包括结束值
  • randint 则包括起始和结束值。因此,random.randint(0, 2) 和 random.randrange(3) 的效果是相同的。

random.choice(range(0, 3)) 也会生成一个介于0(包括)和3(不包括)之间的随机整数,也就是0、1或2中的一个。random.choice() 函数从提供的序列中随机选择一个元素。range(0, 3) 生成一个包含0、1和2的序列(实际上是一个不可变的序列对象,类似于列表,但更节省内存)。然后,random.choice() 从这个序列中随机选择一个元素。

与 random.randrange(3) 相比,random.choice(range(0, 3)) 在功能上是等效的,但它们在实现上略有不同。randrange 是直接计算一个随机数,而 choice 则是从一个序列中随机选取一个元素

(2)打乱列表
random.shuffle(x) 方法:就地(in-place)打乱列表 x 中的元素的顺序。这意味着,它直接修改了传入的列表 x,而不是返回一个新的打乱顺序的列表。

当 x = [1, 2, 3] 时,调用 random.shuffle(x) 后,x 的顺序将被随机打乱。可能的结果包括 [2, 1, 3]、[3, 2, 1]、[1, 3, 2] 等。每次调用 random.shuffle(x) 都会生成不同的随机顺序(除非随机数生成器的状态被重置)。

import randomx = [1, 2, 3]
random.shuffle(x)
print(x)  # 输出可能是 [2, 1, 3],[3, 1, 2],[1, 3, 2] 等随机顺序

以上示例:x 是一个列表,将其传递给 random.shuffle() 方法来打乱它的顺序。注意,x 本身被修改了,而不是创建了一个新的打乱顺序的列表。
另:
random.shuffle() 只适用于可变序列,如列表。

12、环境变量PYTHONPATH

在Python中,环境变量PYTHONPATH可以被用来替代或扩展模块的搜索路径。当Python解释器导入一个模块时,它会按照特定的顺序搜索模块。这个顺序包括内置模块、当前目录中的模块,以及环境变量PYTHONPATH和sys.path中指定的目录。

13、标识符是区分大小写的
标识符最大长度不受限制,但是可能违反了 PEP-8,限制了 79 字符。

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

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

相关文章

2024年 Mathorcup高校数学建模竞赛(B题)| 甲骨文识别 | 特征提取,图像分割解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮200人完成了建模与思路的构建的处理了&#xff5e; 本篇文章是鹿鹿学长经过深度思考&#xff0c;独辟蹊径&#xff0c;通过神经网络解决甲骨文识别问题。结合特征提取&#xff0c;图像分割等多元算法&…

mysql定时任务-事件调度器(Event Scheduler)

1 查看事件调度器是否开启 SHOW VARIABLES LIKE event_scheduler; SELECT event_scheduler; SHOW PROCESSLIST; 2 开启或关闭事件调度器 &#xff08;1&#xff09;临时开启/关闭 -- 开启事件调度器 SET GLOBAL event_scheduler ON; -- 关闭事件调度器 SET GLOBAL event…

关于Ansible的模块 ⑦

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 在继《关于Ansible的模块 ①》、《关于Ansible的模块 ②》、《关于Ansible的模块 ③》与《关于Ansible的模块 ④》、《关于ansib…

python基础——python包【创建和导入,下载第三方包】

&#x1f4dd;前言&#xff1a; 在上一篇文章python基础——模块中&#xff0c;我们讲解了有关python模块的相关知识&#xff0c;这篇文章我们进一步讲解用于储存多个模块文件的python包&#xff1a; 1&#xff0c;什么是python包 2&#xff0c;如何创建和导入python包 3&#…

选择排序解读

在计算机科学中&#xff0c;排序算法是一种将数据元素按照某种顺序排列的算法。今天&#xff0c;我们要探讨的是选择排序&#xff08;Selection Sort&#xff09;&#xff0c;这是一种简单直观的排序方法&#xff0c;通过不断选择剩余元素中的最小&#xff08;或最大&#xff0…

JDBC进阶篇-ROM、主键回显、批量操作、连接池

实体类和ORM 在使用JDBC操作数据库时&#xff0c;我们会发现数据都是零散的&#xff0c;明明在数据库中是一行完整的数据&#xff0c;到了Java中变成了一个一个的变量&#xff0c;不利于维护和管理。而我们Java是面向对象的&#xff0c;一个表对应的是一个类&#xff0c;一行数…

YoloV8改进策略:Neck改进改进|ELA(独家原创与复现)

摘要 本文使用2024年最新的ELA注意力机制改进YoloV8的Neck层,实现涨点!改进方式简单易用,涨点明显!欢迎大家使用。 大家在订阅专栏后,记着加QQ群啊!有些改进方法确实有难度,大家在改进的过程中遇到问题,我会解答和指导! 论文:《ELA:深度卷积神经网络的高效局部注意…

SpringBoot + Dobbo + nacos

SpringBoot Dobbo nacos 一、nacos https://nacos.io/zh-cn/docs/quick-start.html 1、下载安装包 https://github.com/alibaba/nacos/releases/下载后在主目录下&#xff0c;创建一个logs的文件夹&#xff1a;用来存日志 2、启动nacos 在bin目录下打开cmd运行启动命令&a…

2024年DeFi的四大主导趋势:Restaking、Layer3、AI和DePin

DeFi&#xff08;去中心化金融&#xff09;行业在2024年将继续呈现快速增长的势头&#xff0c;驱动这一增长的主要因素将是四大主导趋势&#xff1a;Restaking、Layer3、AI和DePin。这些趋势将推动DeFi生态系统的发展&#xff0c;为用户提供更多的机会和创新。 趋势1&#xff…

ERA拓展之旅:2024香港Web3峰会聚焦全球Web3发展

2024年香港Web3大型峰会是一次令人难忘的体验。这次峰会吸引了来自世界各地的Web3爱好者和从业者齐聚一堂&#xff0c;共同探讨着Web3的未来发展方向与机遇。在这个热情洋溢的氛围中&#xff0c;展现了对Web3的热情&#xff0c;分享彼此的见解和理念&#xff0c;探讨了未来的行…

【1】c++多线程技术之线程基础概念

1、进程与线程的区别 进程和线程是现代操作系统中并发执行程序的两种实体&#xff0c;它们之间存在一些本质的区别。具体分析如下&#xff1a; 进程&#xff1a;进程是操作系统资源分配的基本单位&#xff0c;每个进程都有自己独立的地址空间&#xff0c;包括代码、数据和堆栈…

性能优化-01

当看到性能指标时&#xff0c;你会首先想到什么呢&#xff1f;我相信 “高并发” 和 “响应快” 一定是最先出现在你脑海里的两个词&#xff0c;而它们也正对应着性能优化的两个核心指标—— “吞吐” 和 “延时” 。这两个指标是从应用负载的视角来考察性能&#xff0c;直接影…

Chatgpt掘金之旅—有爱AI商业实战篇|SEO 咨询业务|(十七)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、AI技术创业在SEO 咨询业务有哪些机会&#xff1f; 人工智能&#xff08;AI&#xff09;技术作为当今科技创新的前沿领域&#xff0c;为创业者提供了广阔的机会和挑战。随…

python基础语法+爬虫+图像处理+NumpyPandas数据处理(12天速成,第6天中-列表生成式)

1、列表生成式1 非常方便的得到一个列表 [元素 for遍历 if筛选]l1 [x for x in range(1,21)] # range(1,21) 生成[1&#xff0c;21)包左不包右的列表 print(l1)l2 [x*x for x in range(1,21)] print(l2)l3 [x for x in range(1,21) if x%2 0] print(l3)# 得到20个&#xf…

RTOS Lab report:Task-List Management in the RTOS Kernel

Task-List Management in the RTOS Kernel Ⅰ Introduction Much of the administration in a real‐time kernel consists of list management. In this initial step, we create three different lists and operate them as follows: • Create functions that can input a…

springboot+vue高校贫困生资助勤工俭学管理系统python

本次开发一套贫困生资助管理系统有管理员和用户两个角色。管理员功能有个人中心&#xff0c;学生管理&#xff0c;院校管理&#xff0c;贫困申请管理&#xff0c;资助项目管理&#xff0c;资助申请管理&#xff0c;资助发放管理&#xff0c;勤工俭学管理&#xff0c;岗位申请管…

大语言模型LLM《提示词工程指南》学习笔记04

文章目录 大语言模型LLM《提示词工程指南》学习笔记04数据生成生成代码完成函数&#xff0c;继续下一行生成其他有用的代码&#xff0c;例如创建和测试MySQL查询代码解释 提示函数 大语言模型LLM《提示词工程指南》学习笔记04 数据生成 LLMs具有生成连贯文本的强大能力。使用…

CMake构建OpenCv并导入QT项目过程中出现的问题汇总

前言 再此之前请确保你的环境变量是否配置&#xff0c;这是总共需要配置的环境变量 E:\cmake\bin E:\OpenCv\opencv\build\x64\vc15\bin F:\Qt\Tools\mingw730_64\bin F:\Qt\5.12.4\mingw73_64\bin 问题一&#xff1a; CMake Error: CMake was unable to find a build program…

Linux网络 基础概念

目录 背景知识 互联网的发展 局域网和广域网 网络拓扑 网络协议栈 协议的概念 网络协议的分层 网络与操作系统的联系 网络传输的基本流程 IP地址和MAC地址 以太网通信 数据包的封装和分用 跨网段传输 背景知识 互联网的发展 计算机网络是计算机技术和通信技术相…

MyBatis 执行流程

加载配置文件:MvBatis 的执行流程从加载配置文件开始。通常&#xff0c;MyBatis 的配置文件是一个 XML 文件&#xff0c;其中包含了数据源配置、SQL 映射配置、连接池配置等信息。构建 SqlSessionFactory:在配置文件加载后&#xff0c;MyBatis 使用配置信息来构建 SqlSessionFa…