设为首页 收藏本站
查看: 1383|回复: 0

[经验分享] .Net程序员之Python基础教程学习----字符串的使用 [Second Day]

[复制链接]

尚未签到

发表于 2015-11-30 11:19:17 | 显示全部楼层 |阅读模式
  在The FirstDay 里面学习了列表的元组的使用,今天开始学习字符串的使用。字符串的使用主要要掌握,字符串的格式化(C语言中我们应该都知道,Python和C语言差别不大),字符串的基本操作(Join,Split,Replace等和.net里面的也有很多相似点)
  一.字符串的基本操作
  1.字符串格式化认识: 字符串的格式化用%隔开与C语言一样.赋值也是用%(val1,val2)来传递,其实就是用元组来传递格式化数据.
  Note: values元素的个数以及格式必须与格式化字符串的一一对应. 否则会报错.



>>> format = 'Hello. %s %s'
>>> values =('World','Frank')
>>> print format %values
Hello. World Frank
  2.字符串格式化转换类型: 字符串格式化分为很多种,基本使用类型如下:

转换类型                                                         含义                                                         
d带符号的十进制
o不带符号的八进制
u不带符号的十进制
x(小写)不带符号的16进制
X(大写)带符号的16进制
f浮点数
c单个字符
s字符串
  3. 字符串的转换:
  %[格式化宽度][转义类型]:设置格式化后的长度.多出的忽略
  %.保留小数位][数字类型]:设置小数点后保留位数
  %[填充字符][格式化宽度][转移类型]:此方法情况比较多,建议大家自己测试一下。不同类型不同情况结果不一致.我这里就不统一列出情况了.



>>> 'The float is %.2f' %(1.0/3) # 保留2位有效小数点
'The float is 0.33'
>>> 'Your Name is %10s' %'Frank' #设置宽度为10
'Your Name is      Frank'
>>> '%+10d' %1 #设置宽度并且前面天上+号
'        +1'
>>> '%010d' %1 #设置宽度前面用0补全
'0000000001'
  4. 字符串模板: 除开字符串格式化,Python还提供了另外一种格式化方法,叫做字符串模板,主要通过Template的substitute方法试下,支持字典的操作.
  Note: 字符串模板可以直接通过字典进行替换,替换的原理是通过Mapping(映射)来实现的. 整体上来说调用substitute. Temlate里面的$字段,在字典的Key里面必须存在,否则就会报错提示Mapping不存在;不过可以通过safe_substitute来避免报错问题. 请看下面代码:



>>> from string import Template
>>> dicMsg = Template{'Name1':'Frank','Name2':'Loch'}
>>> s = Template('$Name1 And $Name2 Are Ecoworks')
>>> s.substitute(dicMsg)
'Frank And Loch Are Ecoworks'
>>> dicMsg ={'Name1':'Frank'}
>>> s.safe_substitute(dicMsg)
'Frank And $Name2 Are Ecoworks
>>> dicMsg ={'Name1':'Frank','Name2':'Loch','Name3':'Hardy'}
>>> s.substitute(dicMsg)
'Frank And Loch Are Ecoworks'
  
  二. 字符串常用方法.
  与.net和Java类似,Pyhon对String一样提供了很多操作方法。比如upper,find,replace 等
  1.Find : 找出字符串第一个匹配到的下标. 如果不存在返回-1
  



>>> 'Frank Zhang'.find('Zhang')
6
>>> 'Frank Zhang'.find('a')
2
>>> 'Frank Zhang'.find('12')
-1
  2.Join : 通过一个特定字符将列表链接起来,切记,列表必须的字符串列表,推理是连接的时候是通过list遍历然后字符串想加的,如果是整数,那么在执行想加会报错的.
  



>>> list1=[1,2,3]
>>> '-'.join(list1)
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
'-'.join(list1)
TypeError: sequence item 0: expected string, int found
>>> list2=['1','2','3']
>>> '-'.join(list2)
>>> '--'.join(['1','2','3'])
'1--2--3'

  3.Split 和Splitline: 字符串拆分,通过特定的字符将字符串拆分为列表.
  



>>> '1-2-3-4-5'.split('3-4')
['1-2-', '-5']
>>> '1-2-3-4-5'.split('-')
['1', '2', '3', '4', '5']
>>> '1-2-3-4-5'.split('-3-')
['1-2', '4-5']
>>> '123\n456'.splitlines()
['123', '456']
>>> '123\n456'.split('\n')
['123', '456']
  4.字符大小写转换: Python提供了很多有用的字符串大小写转换,包括全部转换,单词首个字母转换大写。
  



>>> 'Frank'.upper() #转换为大写
'FRANK'
>>> 'Frank'.lower()
'frank'
>>> 'FRANK'.islower()
False
>>> 'frank'.islower()
True
>>> 'my name is frank'.title() #每个单词第一个字母大写
'My Name Is Frank'
>>> 'AaDdEe'.swapcase()  #每个字母大小写相互转换
'aAdDeE'
>>> 'this is python'.capitalize()
'This is python
  5.strip: 踢出字符串前后的空格符号,与.net的Trim()方法差不多.     



>>> ' Frank '.strip()
'Frank'
>>> ' Frank '.rstrip()
' Frank'
>>> ' Frank '.lstrip()
'Frank '
  三.总结:
  



    整体来说Python的字符串操作还是挺简单的。也就一些基本方法的调用。格式化字符串于C语言区别不大.String的字符串操作与.Net的操作也不算太大.
该去吃午饭了.下午和同事去滑冰场滑冰,第二次滑冰,今天把'转弯'和'刹车'学会,PS 周二到周六班次上班还是有好处的。周一去滑冰场简直就是我们的专场。没其他人,适合初学者练习。哈哈。期待美好的一下午.
  
  
    
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145312-1-1.html 上篇帖子: python 如何在一个for循环中遍历两个列表 下篇帖子: 创业公司都在使用的3款Python库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表