python学习记录14

1.字符串的编码和解码

不同的计算机之间在信道中传输的信息本质上是二进制数据,因此当你有一串文本需要传输给另外一台电脑时,则需要将这串文本编译为二进制类型的数据。python中的二进制数据类型称为byte类型。将字符串的str类型转变为byte类型称为字符串的编码,将byte类型转变为str类型称为字符串的解码。

字符串的编码用到的是encode的方法,语法格式为:

string.encode(encoding='编码格式',errors='strict/ignore/replace')

其中编码格式默认‘UTF-8’,error为无法转换编码时的处理方式,strict:严格,无法转换直接报错,ignore:忽略,replace:替换,遇到无法转换的字符用‘?’替代;

同时字符串的解码用到的是decode的方法,要注意的是同一个字符串的编码与解码格式应一致。语法格式为:

bytes.decode(encoding ='编码格式',errors='strict/ignore/replace')

语义与编码时一致

str1 = '你好,我是秦始皇'
byte1 =str1.encode(errors='replace')
print(byte1)
byte2 = str1.encode('utf-16',errors='replace')
print(byte2)
str2 =byte1.decode(errors='replace')
print(str2)
str2 = byte2.decode('utf-16',errors='replace')
print(str2)

2.字符串的验证

字符串的验证是指对用户输入的字符串按照特定规则判断其是否符合规则的验证,输出的数据类型为布尔,具体验证方法如下:

string.isdigit()#判断字符串是否全为阿拉伯数字

string.isnumeric()#判断字符串是否全为数字(包括罗马数字、中文的一二三四)

string.isalpha()#判断字符串是否全为字母或汉字

string.isalnum()#判断字符串是否全为数字或字母(包括中文字符)

string.islower()#判断字符串中的字母是否全为小写

string.isupper()#判断字符串中的字母是否全为大写

string.istitle()#判断字符串中的单词是否全为首字母大写

string.isspace()#判断字符串是否都为空白、转义字符\t\n等

print('12345678'.isdigit())
print('四三二一'.isnumeric())
print('我是梁志超'.isalpha())
print("十四是十四四十是四十".isalnum())
print('apple+banana'.islower())
print('APPLE+BANANA'.isupper())
print('Apple+Apple'.istitle())
print('\t\n'.isspace())

3.字符串的拼接

字符串有三种拼接方式:string.join()#将、直接用加号拼接、格式化字符串进行拼接。

str1 = '我是'
str2 = '梁志超'
print(str1+str2)#直接拼接
print(''.join([str1,str2]))#string.join()
print('%s%s'%(str1,str2))
print(f'{str1}{str2}')
print('{0}{1}'.format(str1,str2))

4.字符串的去重

字符串的去重使用遍历+拼接的操作。拼接有三种方法:一、先创建一个新的空字符串,之后从老字符串的第一个字符开始,往后遍历,使用for-not in的语法,不在新字符串里的字符拼接到新字符串当中;二、使用索引+遍历的操作,与一类似;三、使用列表+排序的操作,因为列表是不可重复序列,因此将字符串转换为列表后重复元素会被删除,之后按照原来的字符顺序排列回来即可。

teststr ='itsbelongwayidoyoufriendseeyouagain'
newstr1 =''
#使用遍历
for item in teststr:if item not in newstr1:newstr1+=item
print(newstr1)
#使用索引+遍历
newstr2 =''
for i in range(0,len(teststr)):if teststr[i] not in newstr2:newstr2 +=teststr[i]
print(newstr2)
#使用集合+列表
s = set(teststr)
l = list(s)
l.sort(key=teststr.index)
print("".join(l))

5.正则表达式

正则表达式是一种特殊的字符序列,用于帮助用户检查输入数据是否符合某种模式。

(1)元字符

具有特殊意义的专用字符,例如^和$,用于表达匹配的开始与结束,此外还有:

. :用于匹配任一字符(除\n外)

\w:用于匹配数字、字母、下划线

\W:用于匹配数字、字母、下划线以外的其他字符

\s:用于匹配空白字符

\S:用于匹配空白字符以外的字符

\d:用于匹配任意十进制数

(2)限定符

限定符是限定匹配的次数,限定符包括:

? :匹配前面的字符一次或0次

+ :匹配前面的字符一次或多次

* :匹配前面的字符0次或多次

{n}:匹配前面的字符n次

{n,}:匹配前面的字符至少n次

{n,m}:匹配前面的字符至少n次,至多m次

(3)区间字符

可以使用[]匹配[]中的字符,例如[\u4e00-\u9fa5]是匹配任意一个汉字

(4)排除字符

使用[^]匹配不在[]中指定的字符

(5)选择字符

用于匹配|左右的任意字符

(6)转义字符

\,同转义字符

(7)分组

改变限定符的作用

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

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

相关文章

【C++】C++17结构化绑定、std::optional、std::variant、std::any

二十二、C17中的结构化绑定、std::optional、std::variant、std::any 本部分是一个小系列,介绍C17中新引入的、用来解决各种不同返回情况的、标准库新组件。 1、C的结构化绑定 结构化绑定structured bindings是C17中引入的一项特性,它允许开发者方便地…

ntkrnlmp.exe导致蓝屏死机的解决方法

在使用Windows操作系统的过程中,用户可能会遇到由ntkrnlmp.exe文件错误引发的蓝屏死机(Blue Screen of Death, BSOD)问题,这不仅影响了日常的工作效率,也可能造成数据丢失的风险。本文将为您提供一系列即时排查与修复n…

U3D游戏开发之骨骼动画相关

目录 1 作为U3D程序如何制作骨骼动画 2 骨骼动画程序代码相关 这个内容我在很久之前就想写了,很多项目也与骨骼动画挂钩,今天我们揭秘的是2D骨骼动画。来聊一聊大家可能非常关注的两个问题:作为程序如何制作骨骼动画?接到美术的骨…

java:题目:用Java实现简单的自取取款操作

import java.util.Scanner; public class ATM {public static void main(String[] args){//自主取款主类Scanner scnew Scanner(System.in);System.out.println("请输入账户号码:");String BankAccoutsrsc.nextLine();/BankAccout3 newBankAccoutnew Bank…

VLAN 高级技术 ——QinQ的配置

QinQ的概述: QinQ技术是一种扩展虚拟局域网(VLAN)数量空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来实现。以下是对QinQ技术的详细概述: QinQ技术的定义与背景 定义:QinQ&#xff08…

不得不承认供电公司信息宣传向媒体投稿的好方法找到了

初入国网供电公司,我被分配到了信息宣传部门,负责每月的信息宣传投稿任务。这项任务看似简单,实则充满挑战。一开始,我满怀热情,以为只要写出高质量的文章,就能顺利发表。然而,现实给了我当头一棒。传统的邮箱投稿方式,不仅竞争压力大,审核严格,而且周期漫长。每次投稿后,我总是…

『YOLOV5』| 一文搞定训练过程中的意外终止、以及想继续增加训练轮数!

文章目录 情况一:意外训练中断(程序未训练完成,想完成目标训练轮数)情况二:自动训练完成(程序已完成训练,想增加训练轮数) 情况一:意外训练中断(程序未训练完…

GCC编译器的`-Wall`、`-Wextra`和`-pedantic`选项解读

gcc是广泛使用的开源编译器,-Wall、-Wextra和-pedantic是gcc中用于控制警告信息的选项,以下是详细介绍: -Wall(启用大部分警告) 功能:-Wall 选项用于启用一系列常用的警告信息,这些警告能帮助…

MMBench-Video:上海 AI Lab 联合多所高校推出长视频理解基准测试工具,全面评估 LVLMs 视频理解的能力

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 🥦 微信公众号&#xff…

高频电子线路---调角频谱与频宽

目录 调角频谱(FM单频调制) 带宽 调频方法 直接调频方法与电路 变容二极管 如何提升频偏? 1. 增大调制信号的幅度(增大调制深度) 2. 提高调制信号的频率 3. 提高调制深度(调制指数) 4. 增加发射功率 5. 使用特殊的调制…

摘要、数字签名、对称加密、非对称加密综合应用示例以及技术原理说明

图:介绍了数字信封的安全传输过程 关键术语 散列:Hash(哈希),一般翻译做散列、杂凑,是把任意长度的输入(数据信息)通过散列算法变换成固定长度的输出,该输出就是散列值…

java学习3---面向对象

一、设计对象并使用 1.类和对象 类是共同特征的描述;对象是真实存在的具体实例。 2.类的几个补充注意事项 二、封装 对象代表什么,就得封装对应的数据,并提供数据对应的行为。 封装告诉我们如何正确的设计对象 三、this关键字 this可以区…

Maven

Maven 命令方式构建项目 mvn compile:编译项目,生成target文件(不编译测试代码) mvn package:打包项目,生成jar或war文件(不指定默认jar包) mvn clean:清理编译或打包后…

leetcode 173.二叉搜索树迭代器

1.题目要求: 2.题目代码: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nu…

vue插件清除 所有console.log()

一、作用 1、提升性能console.log() 语句会消耗一定的性能,尤其是在频繁调用的情况下。在生产环境中移除这些语句可以提高应用的运行效率。 2、减少信息泄露console.log() 可以输出敏感信息(如用户数据、API 响应等)。在生产环境中&#xf…

Day102漏洞发现-漏扫项目篇Poc开发Yaml语法插件一键生成匹配结果交互提取

知识点: 1、Nuclei-Poc开发-环境配置&编写流程 2、Nuclei-Poc开发-Yaml语法&匹配提取 3、Nuclei-Poc开发-BurpSuite一键生成插件 Nuclei-Poc开发-环境配置&编写流程 1、开发环境:VscodeYaml插件 Visual Studio Code - Code Editing. R…

【IEEE出版】第六届国际科技创新学术交流大会暨信息技术与计算机应用学术会议(ITCA 2024,12月06-08)

第六届国际科技创新学术交流大会暨信息技术与计算机应用学术会议(ITCA 2024) 2024 6th International Conference on Information Technology and Computer Application 会议官网:itca2024.iaecst.org 会议时间:2024年12月06-08日 截稿时…

聊一聊Spring中的@Scheduled注解

一、样例 1.1 demo代码 package com.lazy.snail;import org.springframework.stereotype.Component; import org.springframework.scheduling.annotation.Scheduled;/*** ClassName MyTask* Description TODO* Author lazysnail* Date 2024/10/29 17:56* Version 1.0*/ Compo…

如何高效集成每刻与金蝶云星空的报销单数据

每刻报销单集成到金蝶云星空的技术实现 在企业日常运营中,费用报销和付款申请是两个至关重要的环节。为了提升数据处理效率和准确性,我们采用了轻易云数据集成平台,将每刻系统中的报销单数据无缝对接到金蝶云星空的付款申请单中。本案例将详…

使用量化分析微信小程序工具“梦想兔企业智能风险分析助手”日常操作日记-3-预制菜-惠发食品(603536)

使用量化分析微信小程序工具“梦想兔企业智能风险分析助手”日常操作日记-预制菜。 直接看截图: 1.第一步: 查看产业链,选择查看“中国预制菜行业”,政策支持,热点 查看预制菜产业链 这里我选择了中游-生产商 到行业…