python-04

news2024/10/7 7:27:25

str.spilt()

str.spilt(str=" ", num = string.count(str));

str:分隔符,默认为所有的空字符,包括空格、换行符"\n"、制表符"\t"等。

num:分隔次数

str = "小时候 总有他们在耳边叮咛嘱咐 小时候,总有他们牵着我们过马路。渐渐地,这种叮咛越来越少了。"
print(str.split())
print(str.split(',',1))
print(str.split('。'))

re.split()

re.split(pattern, string[, maxsplit])

按照能够匹配的子串将string分割,然后返回分割列表。

maxsplit:指定最大的分割次数,不指定全部分割

import re
line = "iphone7 iphone8; iphoneX, iphoneX plus,       foo"
parts = re.split(r'[;,\s]\s*',line)
print(parts)
fields = re.split(r'(;|,|\s)\s*',line)
print(fields)

1.使用的分隔符是逗号、分号或者空格符,后面可跟任意数量的额外空格

2.根据捕获组进行分割,在使用re.split()时需要注意正则表达式模式中的捕获组是否包含在括号中。如果用到了捕获组,那么匹配的文本也会包含在最终结果中了。

fnmatch.fnmatch()

fnmatch.fnmatch(name, pattern)

测试name是否匹配pattern,是则返回True,否则返回False。

fnmatchcase()的功能是根据提供的大小写进行匹配。

其中“*”表示匹配任意个或多个字符,“?”表示匹配单个字符,[seq]表示匹配单个seq中的字符,[!seq]表示匹配单个不是seq中的字符

请找出以“济南市”为结尾的数据,以2500开头、后面紧跟两个数字并且结尾是数字“06”的数据。

from fnmatch import fnmatchcase as match
import fnmatch

print(fnmatch.fnmatch('py','.py'))
print(fnmatch.fnmatch('tlie.py','*.py'))

print(fnmatch.fnmatch('123.txt','*.TXT'))
print(fnmatch.fnmatchcase('123.txt','*.TXT'))  # 区分大小写
addresses = [
    '山东省 济南市',
    '市中心',
    '250001 3006',
]
a = [addr for addr in addresses if match(addr, '*济南市')]
print(a)
b=[addr for addr in addresses if match(addr, '2500[0-9][0-9] *06*')]
print(b)

str.startswith()

检查字符串是否以指定的子字符串开头,如果是则返回True,否则返回False。如果参数beg和end指定了具体的值,则会在指定的范围内进行检查。

str.startswith(str,beg=0,end=len(string))

str.endswith(suffix[, start[, end]])

suffix:可以是一个字符串或者一个元素

text = "2021年本商店电子商品销售数据"
print(text.startswith('2021'))
print(text.endswith('数据'))
print(text.find('商'))

str.replace() 

str.replace(old, new[, max])   替换

old:将被替换的子字符串

new:新字符串,用于替换old子字符串

max:可选参数,替换不超过max次


str = "www.toppr.com"
print("公告")
print("玲珑科技新地址:", str.replace("www.example.net","www.toppr.net"))
str = "this is string example ...hehe!!!"
print(str.replace('is', 'was', 3))

str.strip()

str.strip([chars])

删除字符串头尾指定的字符(默认为空格)

chars:表示删除字符串头尾指定的字符

str.lstrip([chars])  删除字符串左边的空格或指定字符,返回值是删除完成后的新字符串

str.rstrip([chars])   删除字符串右边的空格或指定字符,返回值是删除完成后的新字符串

str = "      我完全反对楼上的观点     "
print(str.strip());
str = "放X楼上的观点简直是放X    "
print(str.strip('放X'))
str1 = "         我赞成楼上的观点     "
print(str1.rstrip())
str2 = "无语了,骂楼上,骂"
print(str2.rstrip("骂"))

abs(x)  绝对值

print("abs(-40):",abs(-40))
print("abs(100.10):",abs(100.10))

 pow()

math.pow(x, y)    x的y次方,参数转换为float

pow(x,y[, z])   如果z存在,则再对结果进行取模,等于pow(x,y)%z,参数作为整形

import math
print("math.pow(100,2):",math.pow(100,2))
print("pow(100,2):",pow(100,2))
print("math.pow(100,-2):",math.pow(100,-2))
print("math.pow(2,4):",math.pow(2,4))
print("math.pow(3,0):",math.pow(3,0))

decimal

浮点数天生存在误差,decimal实例可以准确地表示任何数字。

a = 4.2
b = 2.1
print(a+b)
print((a+b) == 6.3)
from decimal import Decimal
a = Decimal('4.2')
b = Decimal('2.1')
print(a+b)
print(Decimal('6.3'))
print((a+b)==Decimal('6.3'))
from decimal import localcontext
a = Decimal('1.3')
b= Decimal('1.7')
print(a/b)
with localcontext() as ctx:
    ctx.prec = 3
    print(a/b)
with localcontext() as ctx:
    ctx.prec = 50
    print(a/b)

进制

bin():二进制

oct():八进制

hex():十六进制

如果不想在程序中出现0b, 0o, 0x这类进制前缀符,可以使用format函数来处理。

x = 123
print(bin(x))
print(oct(x))
print(hex(x))
print(format(x,'b'))
print(format(x,'o'))
print(format(x,'x'))

x = -123
print(format(x, 'b'))
print(format(x, 'x'))
print(format(2**32 + x, 'b'))
print(format(2**32 + x, 'x'))
print(int('4d2', 16))
print(int('10011010010', 2))

time.time()

返回当前时间的时间戳。

import time
def procedure():
    time.sleep(2.5)

t0 = time.clock()

procedure()
print(time.clock()-t0)
t0=time.time()
procedure()
print(time.time()-t0)

Calendar

calendar.calendar(year, w=2, l=1, c=6):返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。每日宽度间隔为w字符。每行长度为21*w+18+2*c。l代表每星期行数。

calendar.firstweekday():返回当前每周起始日期的设置。在默认下,首次载入calendar模块时返回0,即表示星期一。

calendar.isleap(year):是闰年则返回True,否则返回False

calendar.leapdays(y1,y2):返回在y1,y2两年之间的闰年总数。

calendar.month(year, month, w=2, l=1):返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符,每行长度为7*w+6。l表示每星期的行数。

calendar.monthcalendar(year, month):返回一个整数的单层嵌套列表,每个子列表装载代表一个新奇的整数,year年和month月外的日期都设为0.范围内的日子都由该月第几日表示,从1开始

calendar.monthrange(year, month):返回两个整数,第一个是该月的首日是星期几,第二个是该月的天数

calendar.prcal(year, w=2, l=1, c= 6):相当于print(calendar.calendar(year, w, l, c))

calendar.prmonth(year, month, w=2, l=1):

calendar.setfirstweekday(weekday):设置每周的起始日期,0(星期一)到6(星期日)

import calendar
calendar.setfirstweekday(calendar.SUNDAY)
print(calendar.firstweekday())
c = calendar.calendar(2022)
print(c)
m = calendar.month(2022,7)
print(m)

正则表达式re

compile(source, filename, mode[, flags[, dont_inherit]], optimize=-1)

将source编译为代码或这AST对象。字节码可以使用内置函数exec()来执行,而AST可以使用内置函数eval()来继续编译。

import re
# 匹配模式,前面一组3个数字,后面一组8个数字
re_telephone = re.compile(r'^(\d{3})-(\d{3,8})$')
A = re_telephone.match('010-12345678').groups()
print(A)
B=re_telephone.match('010-80868080').groups()
print(B)

re.match(pattern, string, flags=0)

pattern:匹配的正则表达式

string:要匹配的字符串

flags:标志位

匹配成功会返回一个匹配的对象,否则返回None。我们可以使用函数group(num)或函数groups()来获取匹配表达式。

flags:

re.I忽略大小写
re.L根据本地设置而更改\w, \W, \b, \B, \s, 以及\S的匹配内容
re.M多行匹配模式
re.S使"."元字符匹配换行符
re.U匹配Unicode字符
re.X忽略pattern中的空格,并且可以使用“#”注释

 group(num=0):匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含哪些组所对应值的元组

groups():返回一个包含多组字符串的元组

import re
text = input("请输入你的邮箱地址:\n")
if re.match(r"[0-9a-zA-Z_]{0,19}@163.com", text):
    print('你的邮箱地址合法!')
else:
    print('你的邮箱地址非法!')

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

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

相关文章

Redis 高可用 sentinel

简介 Sentinel提供了一种高可用方案来抵抗节点故障,当故障发生时Redis集群可以自动进行主从切换,程序可以不用重启。 Redis Sentinel集群可以看成是一个Zookeeper集群,他是Redis集群高可用的心脏,一般由3-5个节点组成&#xff0…

195.回溯算法:分割回文串(力扣)

代码解决 class Solution { public:vector<string> res; // 当前路径&#xff0c;用于存储一个可能的回文分割结果vector<vector<string>> result; // 存储所有可能的回文分割结果// 判断子串 s[left:right] 是否是回文bool isPalindrome(const string& …

示例:WPF中如何绑定ContextMenu和Menu

一、目的&#xff1a;开发过程中&#xff0c;有些模块的右键ContextMenu菜单是需要动态显示的&#xff0c;既是根据不同条件显示不同的菜单&#xff0c;很多是通过代码去生成ContextMenu的MenuItem&#xff0c;本文介绍通过绑定的方式去加载ContextMenu&#xff0c;Menu菜单栏的…

Java面试题:数据库索引

数据库索引 索引:index 帮助mysql高效获取数据的数据结构,在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B树),这些数据结构以某种方式引用(指向数据),这样就可以在数据结构上实现高级查找算法 将数据以树的方式进行存储,提高查找效率 索引的底层结构 使用B树 …

C语言中的进制转换

基础概念 进制又称数制&#xff0c;是指用一组固定的符号和统一的规则来表示数值的方法&#xff0c;在C语言中&#xff0c;可以使用不同的前缀来表示不同的进制&#xff1a; 二进制&#xff1a;以0b或0B为前缀&#xff08;部分编译器可能不支持&#xff09;八进制&#xff1a…

使用Inno Setup 5.5制作软件安装包-精品(二)

上一篇 使用Inno Setup 6制作软件安装包&#xff08;一&#xff09;-CSDN博客 文章简单的说了一下使用Inno Setup 6制作软件安装包&#xff0c;具体有很多的细节&#xff0c;都可以参考上篇的案例。本节说一下&#xff0c;Inno Setup 5 增强版制作软件精品安装包&#xff0c;…

在线随机密码生成工具

对于运维工作&#xff0c;经常需要生产随机密码&#xff0c;这里介绍一款在线生成密码工具&#xff0c;支持配置密码组合类型&#xff0c;如数字、字母大小写、特殊字符等&#xff0c;还能排除某些特殊字符。 在线随机密码生成工具 https://tool.hiofd.com/random-string-gen…

STL迭代器的基础应用

STL迭代器的应用 迭代器的定义方法&#xff1a; 类型作用定义方式正向迭代器正序遍历STL容器容器类名::iterator 迭代器名常量正向迭代器以只读方式正序遍历STL容器容器类名::const_iterator 迭代器名反向迭代器逆序遍历STL容器容器类名::reverse_iterator 迭代器名常量反向迭…

Python的pip切换国内源

&#x1f4da;目录 起因&#xff1a;pip切换国内源&#xff1a;操作永久修改pip配置文件测试永久源配置是否成功 pip其他环境的配置永久源配置 起因&#xff1a; pyCharm安装模块的手出现ModuleNotFoundError: No module named distutils 由于使用pip install distutils下载不了…

ViT:4 Pruning

实时了解业内动态&#xff0c;论文是最好的桥梁&#xff0c;专栏精选论文重点解读热点论文&#xff0c;围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;…

力扣SQL50 查询近30天活跃用户数 datediff(日期1,日期2)

Problem: 1141. 查询近30天活跃用户数 &#x1f468;‍&#x1f3eb; 参考题解 -- 选择活动日期作为天数&#xff0c;计算每天的唯一活跃用户数 select activity_date as day, count(distinct user_id) as active_users from activity -- 从2019年7月27日开始的30天内 where …

手撕RPC——实现简单的RPC调用

手撕RPC——实现简单的RPC调用 一、场景设计二、设计思路2.1 客户端的设计2.2 服务端的设计2.3 通信设计 三、代码实现3.1 定义用户信息3.2 用户服务接口3.3 用户服务接口实现3.4 定义消息格式3.5 实现动态代理类3.6 封装信息传输类3.7 定义服务端Server接口3.8 实现RpcServer接…

【ATU Book - i.MX8系列 - OS】NXP i.MX Linux Desktop (Ubuntu) BSP 开发环境架设

一、概述 谈论嵌入式系统的开发环境&#xff0c;不得不提起近年来相当实用的 Yocto 建构工具。此工具拥有极为灵活的平台扩展性&#xff0c;广泛的软体套件与社群支持、多平台支援整合性&#xff0c;能够满足开发者特定需求和多种热门的嵌入式系统架设&#xff0c;已成为当今顶…

css如何动态累计数字?

导读&#xff1a;css如何动态累计数字&#xff1f;用于章节目录的序列数生成&#xff0c;用css的计数器实现起来比 js方式更简单&#xff01; 伪元素 ::after ::before伪元素设置content 可以在元素的首部和尾部添加内容&#xff0c;我们要在元素的首部添加序列号&#xff0c…

Cesium如何高性能的实现上万条道路的流光穿梭效果

大家好&#xff0c;我是日拱一卒的攻城师不浪&#xff0c;专注可视化、数字孪生、前端、nodejs、AI学习、GIS等学习沉淀&#xff0c;这是2024年输出的第20/100篇文章&#xff1b; 前言 在智慧城市的项目中&#xff0c;经常会碰到这样一个需求&#xff1a;领导要求将全市的道路…

支持WebDav的网盘infiniCloud(静读天下,Zotero 等挂载)

前言 WebDav是一种基于HTTP的协议&#xff0c;允许用户在Web上直接编辑和管理文件&#xff0c;如复制、移动、删除等。 尽管有一些网盘支持WebDav&#xff0c;但其中大部分都有较多的使用限制。这些限制可能包括&#xff1a;上传文件的大小限制、存储空间的限制、下载速度的限…

借助AI快速提高英语听力:如何获得适合自己的听力材料?

英语听力是英语学习中的一个重要组成部分&#xff0c;它对于提高语言理解和交流能力至关重要。可理解性学习&#xff08;comprehensible input&#xff09;是语言习得理论中的一个概念&#xff0c;由语言学家Stephen Krashen提出&#xff0c;指的是学习者在理解语言输入的同时&…

残差网络中的基础结构——残差模块

残差网络的思想 随着网络深度的增加&#xff0c;网络能获取的信息量随之增加&#xff0c;而且提取的特征更加丰富。然而在残差结构提出之前&#xff0c;实验证明&#xff0c;随着网络层数的增加&#xff0c;模型的准确率起初会不断提高&#xff0c;直至达到最大饱和值。然后&a…

194.回溯算法:组合总和||(力扣)

代码解决 class Solution { public:vector<int> res; // 当前组合的临时存储vector<vector<int>> result; // 存储所有符合条件的组合// 回溯函数void backtracing(vector<int>& candidates, int target, int flag, int index, vector<bool>…

不需要new关键字创建实例?jQuery是如何做到的

这篇文章是jQuery源码专栏的开篇文章了&#xff0c;有人会问为什么都2024年了&#xff0c; 还要研究一个已经过时的框架呢&#xff0c;其实&#xff0c;jQuery对比vue和react这种响应式框架&#xff0c;其在使用上算是过时的&#xff0c;毕竟直接操作DOM远不如操作虚拟DOM来的方…