python(day014——字符串2)

Python核心技术开发指南(014)——字符串 本文介绍了Python字符串的定义方式、主要特性及常用操作。字符串可通过单引号、双引号或三引号定义,具有不可变性、序列特性和Unicode兼容性。支持索引、切片、拼接和格式化操作,其中格式化包括%占位符、str.format()和f-string三种方式。文章还详细讲解了字符串的转义字符、原始字符串以及多行文本处理技巧,为Python文本处理提供了全面指导。 阅读详情

1.编码和解码

>>> s="abc"
>>> type(s)
<class 'str'>
>>> s=b"abc"
>>> type(s)
<class 'bytes'>
>>> s=b"中"
  File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
>>> s="中"
>>> type(s)
<class 'str'>
>>> s1=s.encode("gbk")
>>> s1
b'\xd6\xd0'
>>> type(s1)
<class 'bytes'>
>>> s1.decode("gbk")
'中'

2.修改字符串(字符串不能修改,只能改成list后修改)

>>> a
'hello'
>>> list(a)
['h', 'e', 'l', 'l', 'o']
>>> a
'hello'
>>> s=list(a)
>>> del s[1:4]
>>> "".join(s)
'ho'

3.常用的字符串方法:

*split:分割字符串

>>> "a b c d".split()
['a', 'b', 'c', 'd']
>>> "a\nb\tc\rd e".split()
['a', 'b', 'c', 'd', 'e']
>>> "a||b||c||def".split("||")
['a', 'b', 'c', 'def']

*splitlines:按行分割

>>> "a\nb\tc\rd e".splitlines()
['a', 'b\tc', 'd e']
>>> "a\nb\tc\rd e".split()
['a', 'b', 'c', 'd', 'e']
>>> "a\n\rb\tc\r\nd e".splitlines()
['a', '', 'b\tc', 'd e']

>>> import os
>>> os.linesep
'\r\n'

>>> "a\rb\rc".splitlines()
['a', 'b', 'c']
>>> "a\rb\rc".splitlines(13)  #如果想保留\r
['a\r', 'b\r', 'c']

*join:拼接

>>> "".join(["1","2","hello"])
'12hello'
>>> "**".join(["1","2","hello"])
'1**2**hello'

*count :统计

>>> a
'1**2**hello'
>>> a.count("*")
4
>>> a.count("**")
2

*strip:移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。中间不会清掉。

>>> "      a  bc  \r  \t  \n  ".strip()
'a  bc'
>>> "aabbccdd".lstrip("a")
'bbccdd'
>>> "aabbccdd".rstrip("d")
'aabbcc'
>>> "aabbccddaa".strip("a")
'bbccdd'
>>> "abcabbccddaabc".strip("abc")
'dd'
>>> "abcabbccdaabbccdaabc".strip("abc")
'daabbccd'

*lower、upper、title

>>> a="i am a girl".upper()
>>> a
'I AM A GIRL'
>>> a.lower()
'i am a girl'
>>> a=a.lower()
>>> a
'i am a girl'
>>> a.title()
'I Am A Girl'

*find和index

>>> "abcdefg".find("cd")  #找到cd的坐标
2  
>>> "abcdefg".find("cdf")  #找不到返回-1
-1
>>> "abcdefg".index("cd")
2
>>> "abcdefg".index("cdf")  #找不到抛出异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
#解决,加个try
>>> try:
...     "abcdefg".index("cdf")
... except:
...      print("cdf is not found")
...
cdf is not found

*center:居中显示,一般用于格式化字符串输出

*ljust:居左显示

*rjust:居右显示

>>> "abc".center(10)
'   abc    '
>>> "abc".center(10,"*")
'***abc****'
>>> "abc".ljust(10,"*")
'abc*******'
>>> "abc".rjust(10,"*")
'*******abc'

*replace:替换

>>> "abcd".replace("ab","hello")
'hellocd'

*capitalize:首字母大写

>>> "i am a boy!".capitalize()
'I am a boy!'

 


*startswith()和endswith():判断是否以某字符串开头/结尾

>>> "i am a boy!".startswith("i")
True
>>> "i am a boy!".startswith("I")
False
>>> "i am a boy!".startswith("am")
False
>>> "i am a boy!".endswith("!")
True

*isdigit():判断字符串全部都是数字,小数点也是False

*isnumeric:判断字符串全部都是数字,小数点也是False

区别:待补充

>>> "123".isdigit()
True
>>> "123.0".isdigit()
False
>>> "123".isnumeric()
True
>>> "123.0".isnumeric()
False

*isupper:判断是否为大写

*islower:判断是否为小写

>>> a
'i am a girl'
>>> a.islower()
True
>>> a.isupper()
False
>>> (a.upper()).isupper()
True

练习:

1.字符串反转

a="helloword"
a=list(a)
a.reverse()
print("".join(a))



a="helloword"
result=""
for i in range(len(a)-1,-1,-1):
    result+=a[i]

print(result)


a="helloword"
result=""
for i in a[::-1]:
    result+=i

print(result)

2.字符串排重

a="abcabc"
result=""
for i in a:
    if i not in result:
        result+=i

print(result)


a="abcabc"
result={}
for i in a:
    result[i]=""
#利用key值唯一性
print(result)
print("".join(result.keys()))


a="abcabc"
result=list({}.fromkeys(a).keys())
print("".join(result))


>>> a="abcabc"
>>> "".join(set(a))
'bca'

3.统计字符串中单词数量

a="I am a boy"
print(len(a.split()))

 

 

 

 

 

 

Arduino--土壤湿度传感器使用(电阻式) 最近买了一个土壤湿度检测传感器,实物图是这样的: 我买这个模块是想要得到土壤湿度的模拟量。但我买的时候忘了买左边的蓝色模块,我开始以为这个模块是有运放功能的,但实际它是一个电压比较器和一个分压电路。 其模块的接线如图: 该模块的四线是带模拟量输出的,三线的只输出一个到达阈值的标志量。该模块的原理图如下: 该模块的测试原理为:把土壤当成一个可变电阻,随着土壤含水量的增加,土壤电阻减小。而该传感器其实就是两个电极,用来接土壤这个可变电阻。一般湿度的土壤电阻大概在几百K左右,其串连的分压电阻应该在这个数量级。 阅读详情

相关推荐

别再手动连线了!用Tessent IJTAG的SIB和TDR,5分钟搞定复杂芯片的DFT网络分区

本文探讨了如何利用Tessent IJTAG的SIB(Segment Insertion Bit)和TDR(Test Data Register)技术,高效解决复杂芯片DFT网络分区问题。通过智能化的扫描链管理和声明式定义,显著降低连接复杂度,提升测试覆盖率和良率,适用于超大规模SoC设计。

weixin_29251131的博客 301

Python学习day014

网课视频学习 ******************************************************************** 01字符串 str1 = "animi" str2 = "DaCtf" str3 = "ha\tcke\tr" print("首位字母大写___",str1.capitalize()) print("全部转换为小写___",str2.casefold()) #转大写upper() print("字符串居中___",str2.center(10)) print

qq_54670701的博客 182

Matplotlib字体警告终结者:为什么总提示DejaVu Sans?5种场景解决方案大全

本文深入解析Matplotlib中常见的DejaVu Sans字体警告问题,并提供5种典型场景的完整解决方案。从理解字体系统的三层架构和缓存机制,到解决中文显示、远程服务器部署、TeX渲染、缓存优化及生产环境配置等实际问题,帮助开发者彻底摆脱字体警告困扰,实现稳定可靠的数据可视化。

view3的博客 502

Python打卡Day014-Day15——切片学习

Python打卡Day014-Day15——切片学习 # 方法一 def trim(s): length = len(s) if length > 0: for i in range(length): if s[i] != ' ': break j = length-1 while s[j] == ' ' and j >= i: j -= 1

qq_43516238的博客 177

RaiDrive+AList保姆级教程:5分钟搞定OneDrive/百度网盘挂载到本地(附WebDAV配置)

本文提供RaiDrive+AList的保姆级教程,5分钟内实现将OneDrive/百度网盘挂载到本地的详细步骤,包括WebDAV配置。通过AList统一转换云存储协议,RaiDrive虚拟磁盘挂载,显著提升多网盘管理效率,适合需要跨平台操作文件的用户。

weixin_28331555的博客 456

基于AXI PCIE IP的FPGA PCIE卡示意图

如果在上图中的AXI互联IP上再连接一个带AXI Slave接口的BRAM控制器,这个BRAM控制器连接一个BRAM,Host PC在系统主存中分配了一些不连续的内存,Host PC可以将这些内存段的起始地址(当然要先转为PCIE总线地址)写到AXI总线上的BRAM中,这样AXI CDMA读取BRAM,将读取到的PCIE总线基地址写到AXIPCIE寄存器块中的AXIBAR2PCIEBAR_n寄存器中,这样就实现了SG DMA。通过动态改变AXIBAR2PCIEBAR_n寄存器的值,可以实现多通道DMA。

csdn_gddf102384398的博客 1624

入门学习-Python-小甲鱼学习资料-Day014-字符串:各种奇葩的内置方法

根据视频自己练习 : capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串 count(sub[, start[, end]]) 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。 encode(encoding=‘utf-...

seven1levin的博客 582

Unity Sprite Atlas C++底层原理全解析 —— “像素聚合工厂”的秘密

Unity Sprite Atlas C++底层实现简析 Sprite Atlas是Unity中用于优化2D渲染性能的核心机制,其C++底层实现如同一个高效的"像素聚合工厂"。该系统通过将多个小纹理合并为一个大纹理,显著减少Draw Call次数和GPU纹理切换开销。 在数据结构上,底层采用SpriteAtlasData存储图集元数据,PackedTexture管理合并后的大纹理,SpriteFrame记录每个子精灵的位置信息,并通过哈希表实现快速查找。编辑器阶段使用最大矩形等算法优化空

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 204

day-014--字符串和正则表达式

字符串和正则表达式 基础知识 其实正常的使用过程中,我们对字符串的操作频率是非常搞的,有时候我们需要对格式很明显的字符去操作,增删改查的时候,正则表达式很强大,常见的就是用户名格式,密码格式,什么脏字**,ip格式,手机号检测啥的 关于正则表达式的相关知识,大家可以阅读一篇非常有名的博客叫《正则表达式30分钟入门教程》,读完这篇文章后你就可以看懂下面的表格,这是我们对正则表达式中的一些...

weixin_36628778的博客 708

宇树G1开发实践--PPT汇报(遥控版)

本文介绍了一种基于遥控器交互的机器人演示控制系统。系统通过DDS中间件接收遥控器信号,采用位掩码边沿检测技术实现按键精准响应,将不同按键映射为播放控制命令(暂停/重播、跳转、跳过等)。核心交互逻辑包含主播放循环、命令处理和暂停机制,支持播放过程中的实时控制。与自动顺序播放版相比,该系统显著提升了演示灵活性,适用于需要人机互动的演讲场景。使用前需确保网络连接和设备安全,并熟悉按键功能映射。该系统实现了专业级的人机协同演示体验。

m0_47999117的博客 680

【Unity 实用工具篇】✨| I2 Localization 实现本地化及多种语言切换,快速上手

Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的插件:I2 Localization 。

努力前行,总会成为自己心中的那道光 3万+

day 014总结

昨日回顾 迭代器 迭代器对象一定是可迭代对象,可迭代对象不一定是迭代器对象 可迭代对象 含有__iter__方法的数据类型 除了数字类型都是可迭代对象 迭代器对象 含有__iter__,__next__方法的数据类型 文件才是迭代器对象 可迭代对象加上__iter__会变成迭代器对象 迭代器对象加上__iter__方法依旧是迭代器对象 for循环原理 lt[1,2] lt_iter=lt...

aimang0159的博客 161

【教程4>第8章>第10节】OFDM完整通信链路项目的FPGA开发4——插入导频

本文介绍了基于MATLAB和Verilog的导频插入设计与实现方法。首先回顾了MATLAB中导频插入的算法实现,展示了每32个数据插入一个导频的设计。接着详细说明了Verilog硬件实现方案,包括导频序列定义、计数器设计、FIFO模块等关键部分。通过仿真测试验证了设计的正确性,输出了插入导频后的序列、导频序列以及调整时序后的序列。最后提供了相关视频教程资源,帮助读者理解设计过程。该设计实现了数据与导频的精确插入,为OFDM等通信系统开发提供了实用参考。

FPGA/MATLAB学习教程/源码/项目合作开发 395

Day 14 python 之 字符串练习

一、字符串总结与练习 1 #! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # __author__ = "DaChao" 4 # Date: 2017/6/7 5 6 # x = "234567ASDsdfghj" #切片和索引 7 # print(x[2:-2]) 8 # print(x[...

dingchouyong1155的博客 115

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

刷穿剑指offer-Day08-字符串I 字符串知识总结与题型讲解

前文回顾 上一章我们学习了数组相关的知识与解题,并针对例题讲解了双指针和前缀和的解题思想。其中重点针对双指针的特殊场景滑动窗口进行了细致讨论和解题模板梳理。到这里一些初入刷题不久的朋友也许要想,那是不双指针就只能用来刷数组的题目,其他的就不适用了呢?完全不是... 针对某一类数据结构的算法题目,很多时候解题思维是通用的,不仅是数组会用到双指针,链表、字符串等等同样适用。而且我们在解某一种题目时,经...

清风Python 463

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

day014 模块

# 1.用于多种语言交互 编程语言通用数据# 内置的 不需要安装 直接导入使用import json # 导入一个json模块# dumps loads# dump load 有持久化的功能# dic = {'1':2}# s = json.dumps(dic) # 将字典对象转换成字符串# print(type(s))# di = '{"1":2}'# d = json.lo...

a8830324的博客 146

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python算法-能否转换&删除字符--Day014

给定两个字符串S和T,判断S能否通过删除一些字母(包括0个)变成T示例:输入S="longterm"和T=“long”,输出Truej = 0if s[i] == t[i]:#检查 `s` 的第 `i` 个字符是否与 `t` 的第 `j` 个字符匹配。如果匹配,则执行以下操作j += 1#增加 `j` 的值,因为我们找到了一个匹配的字符t = "long"print(x)得到的结果:True第二题总结:while,这个循环用于检查源字符串s中从位置pos。

weixin_47970750的博客 662

【算法】剑指 Offer 专项突击版 Day5字符串部分

【算法】剑指 Offer 专项突击版 Day5字符串部分

阿芒Aris的博客 431

PYTHON 基础-DAY2 20210401

目录014 链式赋值、系列解包赋值、常量015 内置数据类型-基本算术运算符016 整数017 浮点数018 时间表示019 多点坐标020 布尔值021同一运算符-整数缓存问题022-029 字符串022 unicode字符集、三种创建字符串方式、len()023 转义字符、字符拼接、字符串复制、input()输入024 str()、[]提取字符、replace()替换、内存分析025 切片slice操作、逆序026 split()分隔、jion()合并、join()效率测试027 驻留机制、内存分析、字

weixin_47442524的博客 172

力扣刷题day014——电话号码的字母组合

递归调用backtrack,传入当前字母组合加上当前字母,以及去掉第一个字符的nextdigit。# 如果nextdigit为空,说明所有数字都已经处理完毕,将当前字母组合加入到结果列表res中。这里回溯法主要用在,当一个数字对应的字母还有下一个字母存在时,都传入这个字母,直到没有下一个字母存在。# 如果输入的字符串digits为空,则直接返回一个空列表。# 定义一个字典phone,用于映射数字到其对应的字母。这个题目我们可以通过建立一个数字对应字母的字典,然后使用回溯法来做。

2301_79843391的博客 1856

Day014 - 常用系统模块

os模块常用函数 os.getcwd() - 获取当前工作目录 os.listdir(文件夹路径) - 获取指定文件夹所有文件的名称 os.path.abspath(’./’) - 获取指定相对路径的绝对路径 import os print(os.getcwd()) print(os.listdir('./')) print(os.path.abspath('./')) time模块 时间戳 指定时间到1970-01-01 00:00:00(格林威治时间)的时间差(单位:秒)来

qq_20814305的博客 216

day 014 python 内置函数

1. lamda匿名函数2. sorted()3. filter()4. map()5. 递归函数 一匿名函数(lambda) 函数名=lambda 参数: 返回值 简单算法 a+b 常规算法 def func(a,b): # return a+b # ret=func(1,2) # print(ret) lambda算法 f=lam...

weixin_38167363的博客 99

【算法】剑指 Offer 专项突击版 Day1

【算法】剑指 Offer 专项突击版 Day1

阿芒Aris的博客 570

(014)我们一起学Python;习题课

&gt;&gt;&gt; str = r'C:\Program Files\FishC\Good'   在字符串的最后加上反斜杠 &gt;&gt;&gt; str 'C:\\Program Files\\FishC\\Good' &gt;&gt;&gt; print(str) C:\Program Files\FishC\Good &gt;&gt;&gt; str = r'C:\Program F...

花茶的博客 308

Python学习--day 03

Python--day 03012.第一个python程序013.介绍命名规则014.变量 012.第一个python程序 013.介绍命名规则 014.变量

qinshimingyue27的博客 156

python_day2学习笔记

基本数据类型 1、数字 int(整型)   在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807 1 1)int --> string ...

weixin_30437481的博客 135
上一篇: python(day013——列表1)
下一篇: python(day015——列表2)
王总总
博客等级 码龄8年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值