Python基础教程之第3章 使用字符串

Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
#3.1基本字符串操作
>>> website = 'http://www.python.org'
>>> website[-3:]='com'Traceback (most recent call last):File "<pyshell#1>", line 1, in <module>website[-3:]='com'
TypeError: 'str' object does not support item assignment
#3.2 字符串格式化:精简版
>>> format = "Hello, %s. %s is enough for ya?"
>>> values = ('world', 'Hot')
>>> print format % values
Hello, world. Hot is enough for ya?
>>> format = "Pi with three decimals: %.3f"
>>> from math import pi
>>> print format % pi
Pi with three decimals: 3.142
#模板字符串
>>> from string import Template
>>> s = Template('$x, glorious $x!')
>>> s.substitute(x='slurm')
'slurm, glorious slurm!'
>>> s = Template("It's ${x}tastic!")
>>> s.substitute(x='slurm')
"It's slurmtastic!"
>>> s = Template("Make $$ selling $x!")
>>> s.substitute(x='slurm')
'Make $ selling slurm!'
>>> s = Template('A $thing must never $action.')
>>> d={}
>>> d['thing']='gentleman'
>>> d['action']='show his socks'
>>> s.substitute(d)
'A gentleman must never show his socks.'
>>> #saft_substitute不会因缺少值或不对使用$字符而出错.
>>> '%s plus %s equlas %s' % (1,1,2)
'1 plus 1 equlas 2'
>>> '%s plus %s equlas %s' % 1,1,2Traceback (most recent call last):File "<pyshell#24>", line 1, in <module>'%s plus %s equlas %s' % 1,1,2
TypeError: not enough arguments for format string
>>> '%s plus %s equlas %s' % 1,1,2 # Lacks parentheses!Traceback (most recent call last):File "<pyshell#25>", line 1, in <module>'%s plus %s equlas %s' % 1,1,2 # Lacks parentheses!
TypeError: not enough arguments for format string
#3.3 字符串格式化:完整版
#3.3.1简单转换
>>> 'Price of eggs: $%d' % 42
'Price of eggs: $42'
>>> 'Hexadecimal price of eggs: %x' % 42
'Hexadecimal price of eggs: 2a'
>>> from math import pi
>>> 'Pi: %f...' % pi
'Pi: 3.141593...'
>>> 'Very inexact estimate of pi: %i' % pi
'Very inexact estimate of pi: 3'
>>> 'Using str: %s' % 42L
'Using str: 42'
>>> 'Using repr: %r' % 42L
'Using repr: 42L'
#3.3.2字段宽度和精度
>>> '%10f' % pi
'  3.141593'
>>> '%10.2f' % pi
'      3.14'
>>> '%.2f' % pi
'3.14'
>>> '%.5s' % 'Guido van Rossum'
'Guido'
>>> '%.*s' % (5, 'Guido van Rossum')
'Guido'
#3.3.3符号, 对齐和0填充
>>> '%010.2f' % pi
'0000003.14'
>>> 010
8
>>> '%-10.2f' % pi
'3.14      '
>>> print ('% 5d' % 10) + '\n' + ('% 5d' % -10)F
SyntaxError: invalid syntax
>>> print ('% 5d' % 10) + '\n' + ('% 5d' % -10)10-10
>>> print ('% 5d' % 10) + '\n' + ('% 5d' % -10)F
SyntaxError: invalid syntax
>>> print ('% 5d' % 10) + '\n' + ('% 5d' % -10)10-10
>>> print ('%+5d' % 10) + '\n' + ('%+5d' % -10)+10-10#代码清单3-1 字符串格式化演示样例
#3.4字符串方法
#string模块还包含一些不能作为字符串方式使用的常量和函数
>>> import string
>>> string.digits
'0123456789'
>>> string.letters
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
>>> string.lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?

@[\\]^_`{|}~' >>> string.printable '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c' >>> string.ascii_letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' #3.4.1 find >>> 'With a moo-moo here. and a moo-moo there'.find('moo') 7 >>> title = "Monty Python's Flying Circus" >>> title.find('Monty') 0 >>> title.find('Python') 6 >>> titie.find('Flying') Traceback (most recent call last): File "<pyshell#59>", line 1, in <module> titie.find('Flying') NameError: name 'titie' is not defined >>> title.find('Flying') 15 >>> title.find('Zirquss') -1 >>> subject = '$$$ Get rich now!!! $$$' >>> subject.find('$$$') 0 >>> subject.find('$$$', 1) 20 >>> subject.find('!!!') 16 >>> subject.find('!!!', 0, 16) -1 #3.4.2 join >>> seq = [1,2,3,4,5] >>> sep = '+' >>> sep.join(seq) Traceback (most recent call last): File "<pyshell#69>", line 1, in <module> sep.join(seq) TypeError: sequence item 0: expected string, int found >>> seq = ['1','2','3','4','5'] >>> sep.join(seq) '1+2+3+4+5' >>> dirs = '','usr','bin','env' >>> '/'.join(dirs) '/usr/bin/env' >>> print 'C:' + '\\'.join(dirs) C:\usr\bin\env #3.4.3 lower >>> 'Trondheim Hammer Dance'.lower() 'trondheim hammer dance' >>> if 'Gumby' in ['gumby','smith','jones']: print 'Found it!' >>> name='Gumby' >>> names=['gumby','smith','jones'] >>> if name.lower() in names: print 'Found it!' Found it! #标题转换 >>> "that's all folks".title() "That'S All Folks" >>> import string >>> string.capwords("that's all, folks") "That's All, Folks" #3.4.4 replace >>> 'This is a test'.replace('is','eez') 'Theez eez a test' #3.4.5 split >>> '1+2+3+4+5'.split('+') ['1', '2', '3', '4', '5'] >>> '/usr/bin/env'.split('/') ['', 'usr', 'bin', 'env'] >>> 'Using the default'.split() ['Using', 'the', 'default'] #3.4.6 strip 相当于Java 中的 String.trim() >>> ' internal whitespace is kept '.strip() 'internal whitespace is kept' >>> names = ['gumby','smith','jones'] >>> name = 'gumby' >>> if name in names: print 'Found it!' Found it! >>> '*** SPAM * for * everyone!!! ***'.strip(' *!') 'SPAM * for * everyone' #3.4.7 translate >>> from string import maketrans >>> table = maketrans('cs', 'kz') >>> len(table) 256 >>> table[97:123] 'abkdefghijklmnopqrztuvwxyz' >>> maketrans('','')[97:123] 'abcdefghijklmnopqrstuvwxyz' >>> table = maketrans('cs','kz') >>> 'this is an incredible test'.translate(table) 'thiz iz an inkredible tezt' >>> 'this is an incredible test'.translate(table,' ') 'thizizaninkredibletezt' #非英语字符串问题 table = maketrans('X','x') word = 'Xxx' print word.translate(table).lower() print u'Xxx'.lower() #小结 #本章介绍了字符串的两种很重要的使用方式 #字符串格式化: 求模操作符(%)能够用来将其它值转换为包含转换标志的字符串,比如%s. 它还能用来对值进行不同方式的格式化, #包含左右对齐, 设定字段宽度以及精度,添加符号(正负号)或者左填充数字0等. #字符串方法 有些很实用,比方split和join,有些则用得很少,比方istitle或capitalize. #本章的新函数 #string.capwords(s[, sep]) 使用split函数切割字符串s(以sep为分隔符),使用capitalize函数将切割得到的各单词首字母大写,而且使用join函数以sep为分隔符 #将各单词连接起来 #string.maketrans(from,to) 创建用于转换的转换表 #接下来学什么 列表, 字符串和字典是Python中最重要的3种数据类型.

代码清单3-1 字符串格式化演示样例 

#e3-1
#使用给定的宽度打印格式化后的价格列表width = input('Plese enter width: ')price_width = 10
item_width = width - price_width;#减号(-1)用来左对齐数值
header_format = '%-*s%*s'
format = '%-*s%*.2f'print '=' * widthprint header_format % (item_width, 'Item', price_width, 'Price')print '-' * widthprint format % (item_width, 'Apples', price_width, 0.4)
print format % (item_width, 'Pears', price_width, 0.5)
print format % (item_width, 'Cantaloupes', price_width, 1.92)
print format % (item_width, 'Dried Apricots (16 oz.)', price_width, 8)
print format % (item_width, 'Prunes (4 lbs.)', price_width, 12)print '=' * width#python e3-1.py
#Plese enter width: 35
#===================================
#Item                          Price
#-----------------------------------
#Apples                         0.40
#Pears                          0.50
#Cantaloupes                    1.92
#Dried Apricots (16 oz.)        8.00
#Prunes (4 lbs.)               12.00
#===================================


转载于:https://www.cnblogs.com/brucemengbm/p/6978736.html

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

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

相关文章

linux 拼音输出繁体_解决rime仓颉拼音反查为繁体的问题

和昆明IT没关系, 不过困扰我好几年的事解决了, 占地发一下:rime 有个很强的地方: 仓颉输入的时候, 想不起来, 可以输入拼音, 能提示对应字的仓颉的输入法. 也就是能用拼音反查对应的仓颉输入码.这样太方便学习了, 可是... 切到简体输入后, 输拼音反查时, 有时提示的是对应字的繁…

蒲慕明院士:脑机融合技术或许会成为未来人工智能的一个热门方向

来源&#xff1a;中国经济大讲堂【导读】当前&#xff0c;以人工智能为代表的新技术&#xff0c;成为推动第四次工业革命走向深入的重要力量&#xff0c;会给经济、社会、文化等多领域的发展带来深刻变革。但是&#xff0c;因为对大脑工作方式的了解有限&#xff0c;人工智能的…

html 两个图片并排,HTML – 两个图像并排和响应

使用显示表并排放置并保持并排并响应.显示&#xff1a;表;表格布局&#xff1a;固定;将使用display&#xff1a;table-cell为子元素创建流畅的布局;这不仅可以使它们保持相同的宽度,还可以使容器保持相同的高度.vertical-align&#xff1a;top;将它们与顶部对齐,或者您可以将垂…

Leetcode:Palindrome Number

题目大意是提供一个32位整数&#xff0c;判断这个数的十进制字符串形式是否是回文。所谓的回文就是字符串的逆序形式与正序形式完全一致。比如123不等于321不符合条件&#xff0c;121等于121符合条件&#xff0c;当然-1不等于1-也是不符合条件的。题目还限制了允许使用的存储空…

opencv 4快速入门_初学摄影,怎么才能快速入门?给初学的你们4条建议

初学摄影&#xff0c;怎么才能快速入门&#xff1f;给初学的你们4条建议大家在初期学习摄影的时候&#xff0c;不知道怎么入门&#xff0c;也不会拍摄&#xff0c;今天就给初学摄影的你们几条建议&#xff01;一、选对拍摄模式很多新手摄影师一直用P档拍摄&#xff0c;过一段时…

用机器学习分析美国新财年1万个国防项目,7054亿军费都投给了哪些技术?

大数据文摘出品来源&#xff1a;warontherocks编译&#xff1a;lin、曹培信2月10日&#xff0c;美国国防部发布了2021财年预算&#xff0c;概述了下一财年国防部的支出重点&#xff0c;总金额达到7054亿美元。都说财年预算的目的是为下一场战争做准备&#xff0c;早在2018年&am…

计算机二级公共基础知识2020版电子版,2020年计算机二级考试公共基础知识背诵笔记...

数据结构与算法1 算法算法&#xff1a;是指解题方案的准确而完整的描述。算法不等于程序&#xff0c;也不等计算机方法&#xff0c;程序的编制不可能优于算法的设计。算法的基本特征&#xff1a;是一组严谨地定义运算顺序的规则&#xff0c;每一个规则都是有效的&#xff0c;是…

织梦后台如何生成站点地图sitemap.xml

第一步在网站根目录建立sitemap.php文件 内容如下&#xff1a; 写一个计划任务文件命名为generate_sitemap.php&#xff0c;放在/plus/task目录里&#xff0c;文件内容如下&#xff1a; <?php//定时生成网站地图require_once(dirname(__FILE__)./include/common.inc.php);i…

python blp模型 估计_BLP模型

BLP模型BLP模型对安全性进行分级&#xff0c;用格作为描述系统安全性级别的数学工具&#xff0c;由函数:FSOLC产生主体和客体的安全级别&#xff0c;其中&#xff0c;S和O分别是主体和客体的集合&#xff0c;L是格结构&#xff0c;C是安全级别的集合。BLP模型抽象出的访问…

神经元“超级替补”让失明小鼠恢复视力

来源&#xff1a;文汇报一旦长成就得用一辈子&#xff0c;即使有零部件用坏了&#xff0c;也几乎没有替换的可能&#xff0c;这就是人体的神经系统。这种特性给人类带来了无穷困扰&#xff1a;一些功能性损伤导致失明、瘫痪&#xff0c;某些退行性改变引发帕金森病、阿尔兹海默…

html5的新标记,HTML5 新标记

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼对比一下XHTML 1.0 Transitional的规范&#xff0c;html5基本上没有XHTML 1.0 Transitional严格的要求&#xff0c;并且简化了很多东西。文档声明更简单了。1 2 3 html标签上不需要声明命名空间。1 2 3 字符集编码声明…

静态方法和实例方法(mark)

借花献佛[转自 ivonys blog]关于静态方法和实例方法的一些误区。 一、 静态方法常驻内存&#xff0c;实例方法不是&#xff0c;所以静态方法效率高但占内存。 事实上&#xff0c;方法都是一样的&#xff0c;在加载时机和占用内存上&#xff0c;静态方法和实例方法是一样…

js 对一个字段去重_js面试

js面试题1.简述同步和异步的区别2.怎么添加、移除、复制、创建、和查找节点3.实现一个函数clone 可以对Javascript中的五种主要数据类型(Number、string、Object、Array、Boolean)进行复制4.数组去重方法12种方法5.写一个返回闭包的函数(1)首先知道什么是闭包&#xff1f;闭包就…

人工智能可能成为我们检测COVID-19最有效的方法吗?

Images: RADLogicsUsing three CT scans from a single coronavirus patient, the RADLogics algorithm quantifies the amount of recovery with a "corona score."来源&#xff1a;Megan Scudellari在过去的一段时间里&#xff0c;世界各地的公司宣布了一系列基于人…

haosou属于搜索引擎的_中国的搜索引擎有哪些?

展开全部1、百度百度(纳斯达克&#xff1a;32313133353236313431303231363533e59b9ee7ad9431333365633939BIDU)&#xff0c;全球最大的中文搜索引擎、最大的中文网站。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力&#xff0c;抱着技术改变…

如何启用台式计算机无线开关,联想一体机无线网卡开关如何开启_怎么打开联想电脑一体机WiFi无线开关-win7之家...

现在的电脑中都会配备有无线网卡功能&#xff0c;当我们要连接wifi无线网络的时候&#xff0c;就需要开启无线网卡&#xff0c;但是有联想一体机用户不知道要如何开启无线网卡开关&#xff0c;其实方法并不难&#xff0c;如果你有这方面需求的话&#xff0c;就随小编一起来看看…

Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...

效果图 用的是UGUI 我先说思路 通过判断元素的位置信息来改变Hierarchy的顺序 实现无限滚动 改变位置的同时也要不断的调整Content的位置防止乱跳 元素锁定就是直接锁死的元素的移动范围 当只有拖动大于一定程度时才会发生改变 然后是面板设置 整体结构是这样子的 需要注意的是…

2020年虚拟现实和增强现实的发展趋势将会如何|0glasses低调分享

来源&#xff1a;AR工业应用2019年是虚拟现实和增强现实&#xff08;VR / AR&#xff09;增长的一年-统称为扩展现实&#xff08;XR&#xff09;。这些突破性技术的出现开始使人们远离最初流行的游戏和娱乐领域&#xff0c;用户可以戴上耳机并完全沉浸在计算机生成的环境中&…

qpaint 居中画图像_用AI画建筑分析图的好技巧。

今天给大家推送一期AI的技巧&#xff0c;有快捷键技巧&#xff0c;也有一些其他技巧&#xff0c;大家往下看&#xff0c;看有没有自己能用得到。AI技巧视图操作将图像显示为边框模式(切换) 【Ctrl】【Y】对所选对象生成预览(在边框模式中) 【Ctrl】【Shift】【Y】放大视图 【Ct…

【USACO Feb 2014】Cow Decathlon

题目描述 约翰有 N 头奶牛&#xff0c;组成了一直队伍参加全能比赛。比赛一共有 N 项&#xff0c;每头奶牛必须参加一项比赛&#xff0c;每项比赛也必须有一头奶牛参加。任何一头奶牛可以胜任任何一项比赛&#xff0c;但得分不一样。如果第i 头奶牛参加第 j 项比赛&#xff0c;…