手机版| OFweek首页 | 半导体照明 | 太阳能光伏 | 电子工程 | 激光 | 光通讯 | 工控 | 显示
智能电网 | 云计算 | 环保 | 风电 | 物联网 | 3D打印 | 智能家居 | 人工智能 | 新能源汽车 | 氢能
智慧城市 | 仪器仪表 | VR | 智能硬件 | 传感器 | 智能汽车 | 锂电 | 新材料 | 储能 | 机器人
智能制造| 智慧海洋| 可穿戴设备| 医疗科技| 安防| 通信| 电力| 照明| 电源| 光学| 数字生活| PCB
侵权投诉
  • ASML要慌:EUV光刻机新光源出现,成本降50%,功耗降80%
  • A股芯片设计公司,谁是现金王?
  • 拒绝英伟达垄断,八大科技巨头组团推出UALink
  • 英伟达发布最新财报,黄仁勋眼中的预期和发展线
订阅
纠错
加入自媒体

python的数据类型(三):字符串

2020-08-26 17:46
ExASIC
关注

各位童鞋很抱歉,由于这段时间比较忙,好久没更新了。今天终于有空来继续跟各位童鞋一起学习python。

之前讲到,字符串的定义就是把一些字符序列用引号引起来。例如:

s = 'abc'

上面这行代码的执行过程:先创建一个字符串对象,并初始化里面字符串的值为'a', 'b', 'c'的序列,再把指针s指向这个对象。如下图所示:

字符串的序列操作

我们知道字符串内部是一个字符序列。作为序列,我们可以用下标来索引。例如:

c = s[0]    # c = 'a'

c = s[1]    # c = 'b'

还可以从字符序列的末尾开始索引,-1代表最后一个字符,-2代表倒数第二个字符,... 例如:

c = s[-1]    # c = 'c'

c = s[-2]    # c = 'b'

另外字符串还支持切片(slice)操作,取出给定两个下标之间的字符序列(包括开始下标的字符,但不包括结束下标的字符。用数学区间的[a:b)来描述是不是更清楚点呢)。例如:

c = s[0:2]    # c = 'ab'

c = s[1:2]    # c = 'b'

c = s[1:-1]    # c = 'b'

这一点很像verilog的位宽操作,例如:reg s[7:0] = 8'h5a,那我们可以c = s[3:0]来取出3到0位的4'ha。只是verilog是闭区间的。

在切片时,当开始下标是0,冒号前的下标可以省略;结束下标指向最后一个元素,冒号后的下标也可省略。所以上面的切片可以简化成:

c = s[:2]    # c = 'ab'

c = s[1:]    # c = 'bc'

当开始下标和结束下标都省略时,s[:]表示整个字符序列'abc'。

注意理解 s[1:-1]和s[1:]的区别,前者不包括最后一个字符,而后者包括。

作为字符序列,还支持拼接和重复操作。例如:

s1 = 'abc'

s2 = s1 + 'def'  # s2 = 'abcdef'

s3 = s1 * 3    # s3 = 'abcabcabc'

另外我们要注意字符序列的只读性。我们不可以对字符赋值,s[0] = 'd'是非法的。但我们可以迂回:

s = 'abc'        

s = 'd' + s[1:]

但要注意,第二句并不是简单的修改s对象的元素值,而是用拼接产生了一个全新对象,并让s指向新的对象。

字符串类型的操作

除了序列操作外,字符串本身作为一种类,自带了很多操作函数(类的方法)。下表列出了一些常用的操作:

index, find

position = index(substr, begin=0, end=len(string))

position = find(substr, begin=0, end=len(string))

描述:index和find函数的作用相同,都是查找子字符串。可以指定开始和结束索引,在一个范围内查找。

返回值:子字符串的起始索引值。index和find的区别是,当没有找到子字符串时,index报错,而find返回-1。

例如:

s = 'abcdefdef'

p1 = s.find('de')   # p1 = 3

p2 = s.index('de', 5)  # p2 = 6

replace

str_new = replace(substr_old, substr_new[, max])

描述:替换函数,如其名,查找子字符串substr_old,替换成substr_new。第三个参数是可选的,指定替换的最大次数,默认是全部替换。

返回值:返回替换后的新字符串。

例如:

s = 'abcdefdef'

s1 = s.place('de', 'gh')   # s1 = 'abchgfhgf'

s2 = s.place('de', 'gh',1)   # s1 = 'abchgfedf'

split

list = split(str=' ',  num)

描述:split函数用分隔字符str把字符串拆分成若干个子字符串。num指定拆分多少次,若没有指定次数,则为全部拆分。

返回值:拆分后的子字符串列表(下一次我们将要学习列表)。

例如:

s = 'I am learning python'

list1 = s.split(' ')   # list1 = ['I', 'am', 'learning', 'python']

list1 = s.split(' ', 2)   # list1 = ['I', 'am', 'learning python']

upper, lower

str_new = upper()

str_new = lower()

描述:把字符串转成大写或小写。

返回值:大小写转换后的新字符串。

例如:

s = 'abc'

s1 = s.uppper()   # s1 = 'ABC'

s2 = s1.lower()   # s2 = 'abc'

strip, lstrip, rstrip

str_new = strip(char=' ')

str_new = rstrip(char=' ')

str_new = lstrip(char=' ')

描述:strip函数用来去除头或尾部的指定字符,默认是去掉空格。

返回值:返回处理后的新字符串。

例如:

s = '  abc'

s1 = s.lstrip()   # s1 = 'abc'

s2 = s1.rstrip('')   # s2 = 'abc'

startswith, endswith

boolean = startswith(str, begin=0, end=len(string))

boolean = endswith(str, begin=0, end=len(string))

描述:检查字符串是否以str开头或结尾,可以在指定范围内检查。

返回值:如果检查到,返回True,否则返回False。

例如:

s = 'clk_a'

b1 = s.startswith('clk')   # b1 =  True

s = 'rst_n'

b2 = s.endswith('_n')   # s2 = True  

format

str_new = '{}{}...'.format(arg1, arg2, ...)

描述:format用来把其它数字、字符串、甚至对象等格式化成字符串。大括号{}用来指定名称、位置、数字的格式等。

返回值:格式化后的新字符串。

例如:

s = 'I am learning {lang}'.format(lang='python')  # s = 'I am learning python'

s = '{0} {1} {0}'.format('face', 'to')  # s = 'face to face'

s = '{} {} {}'.format('I', 'love', 'python')  # s = 'I love python'

第一种,按名称替换。

第二种,按位置替换。

第三种,默认按位置替换,也是最常见的替换方式。

是不是有点像verilog的模块例化?可以按名称,也可以按位置。

format数字格式化

数字格式化成字符串的规则如下表:

例如:

s = "8'h{:0>2x}".format(15)  # s = "8'h0f"

s = '{:.2%}'.format(3 / 9)  # s = "33.33%"

可能有童鞋要问了“字符串内置这么多函数,一下也记不住啊?” 所以下面内容非常重要(敲黑板)。

1. 怎么看string还内置其它什么函数?

s = 'abc'

print(dir(s))

dir()是一个内置函数,能够查看类的所有属性和方法。结果如下:

2. 那怎么查看具体函数的使用方法呢?

python已经考虑到这个问题了,不需要百度、不需要查看源代码,只需要调用help()函数。例如:

print(help(s.find))

将打印出下面的内容:

有没有被python的贴心功能感动呢?

下一次我们将学习python的列表。

分享
本地收藏 打印 推荐给朋友
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

  • 看不清,点击换一张   刷新
  • 最新评论
  • 热门评论

暂无评论

暂无评论

图片新闻

  • 展会直击 | 金百泽科技链接科技与艺术亮相CPCA SHOW 2024

    展会直击 | 金百泽科技链接科技与艺术亮相CPCA SHOW 2024

  • CMEF开幕 | 金百泽科技医疗整体解决方案亮相

    CMEF开幕 | 金百泽科技医疗整体解决方案亮相

  • 金百泽科技旗下造物数科赋能电子电路产业数字化升级

    金百泽科技旗下造物数科赋能电子电路产业数字化升级

  • 2024中国国际音频产业大会 ∣ “可靠性生产力”加速视听产业智能化升级

    2024中国国际音频产业大会 ∣ “可靠性生产力”加速视听产业智能化升级

  • 携手产业伙伴创造无限可能

    携手产业伙伴创造无限可能

  • “筑梦福田 才聚梅林”走进金百泽

    “筑梦福田 才聚梅林”走进金百泽

  • 开工大吉丨欣欣向龙 时不我待

    开工大吉丨欣欣向龙 时不我待

  • 进击的创迈思,引领近红外光谱个人级应用的划时代创新

    进击的创迈思,引领近红外光谱个人级应用的划时代创新

行业报告

  • 2023年全球OLED发光材料市场分析及预测报告
  • 2023年全球偏光片行业市场研究及趋势预测报告
  • 2023-2028年中国MCU芯片行业研究前景预测报告
  • 2023年中国汽车电子行业市场发展现状及投资前景分析

最新发布

  • 音频升级,NTP8835替代AD83586B带来全新感受
  • 读取超7100MB/s 最高仅51度的长江存储PC411 SSD!雷神MIX PRO迷你机评测
  • Bourns 推出第二代符合 AEC-Q200 标准的高爬电/间隙距离 汽车级隔离电源变压器
  • 2024 CTIS消费者科技及创新展览会重磅开幕 引领消费科技新趋势
  • 英伟达大口吃肉,台积电不甘愿只喝点汤

最新活动 更多

  • 6月30日
    立即参评>> 【AI评选】维科杯·OFweek 2024(第九届)人工智能产业大会评选
  • 6月30日
    立即参评>> 【汽车评选】维科杯·OFweek 2024汽车行业年度评选
  • 6月30日
    立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
  • 是德科技
    进入直播 >> 医疗电子设备EMC测试的挑战
  • 7月8日
    立即观看 >>> 【全程直播】 2024慕尼黑上海电子展
  • 7月8日
    立即报名>> 【线下会议】2024智能制造赋能产业发展论坛

推荐专题

COMSOL 电子书《多物理场仿真助力清洁能源技术发展》

COMSOL 电子书《多物理场仿真助力清洁能源技术发展》

是德科技精选《汽车SerDes发射机测试》

是德科技精选《汽车SerDes发射机测试》

精选安森美白皮书合集

精选安森美白皮书合集

爱德克IDEC八大王牌安全产品

爱德克IDEC八大王牌安全产品

一周热点 月点击榜
  • 1 ASML要慌:EUV光刻机新光源出现,成本降50%,功耗降80%
  • 2 3万亿美元俱乐部新成员,英伟达市值超苹果
  • 3 金刚石芯片正在成为半导体行业热点
  • 4 intel也要阉割AI芯片,卖给中国,和华为、英伟达竞争?
  • 5 NordicSemiconductor为MWC上海 2024 带来全面的无线物联网连接解决方案
  • 6 联想服务器跃居中国市场前三 算力基础设施强势进入“第一阵营”
  • 7 光刻机巨头ASML创始人逝世:享年98岁
  • 8 CPU 2.0时代即将到来!爆炸性成果使任何CPU性能提升100倍
  • 9 英伟达大口吃肉,台积电不甘愿只喝点汤
  • 10 台积电->苹果,供应链危">芯片产业“发动机”将熄火,ASML->台积电->苹果,供应链危
  • 1 iPhone 16重磅功能曝光:苹果创新的又一里程碑!
  • 2 太夸张!全球第一大芯片厂,等于22个Intel、11个AMD、4个台积电
  • 3 百亿花完了?神秘芯片大厂解散,参与人有武汉弘芯痕迹……?
  • 4 量子产业路走宽了,国内跟紧技术方向
  • 5 华为海思王者归来:麒麟芯片一季度销量800万颗,全球第6
  • 6 瑞银第27届亚洲投资论坛【中国科技硬件行业展望】
  • 7 台积电买的ASML EUV光刻机被曝暗藏后门:可以远程自毁!
  • 8 2024年中国先进封装行业研究报告
  • 9 亮相2024武汉电子展迎接半导体回暖潮,创实技术展现华丽转型蓝图
  • 10 害怕被中国芯片卷死,美国对中国芯收50%关税
电子工程 猎头职位 更多
  • 高级软件工程师 广东省/深圳市
  • 自动化高级工程师 广东省/深圳市
  • 光器件研发工程师 福建省/福州市
  • 销售总监(光器件) 北京市/海淀区
  • 激光器高级销售经理 上海市/虹口区
  • 光器件物理工程师 北京市/海淀区
  • 激光研发工程师 北京市/昌平区
  • 技术专家 广东省/江门市
  • 封装工程师 北京市/海淀区
  • 结构工程师 广东省/深圳市
扫码关注公众号
OFweek电子工程网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号

深圳SEO优化公司河池外贸网站制作鹤壁网站优化推广报价海东阿里店铺托管汉中百姓网标王推广报价石家庄企业网站改版推荐丹东百搜标王价格昆明网站推广工具价格民治优秀网站设计上海关键词排名价格金昌网站设计模板梅州营销型网站建设哪家好唐山网站搭建西乡网站搜索优化多少钱湖州百度关键词包年推广哪家好昭通seo优化报价聊城推广网站多少钱吉祥阿里店铺运营肇庆网站制作设计公司绥化外贸网站设计报价泰安seo网站优化多少钱宿州网站优化推广推荐上饶网站改版价格南平百度竞价包年推广深圳高端网站设计价格黄南seo网站优化哪家好龙岩SEO按天计费公司哈尔滨网站开发价格丹东品牌网站设计铜川至尊标王公司汕尾百度seo价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化