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

       在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 周二到周六班次上班还是有好处的。周一去滑冰场简直就是我们的专场。没其他人,适合初学者练习。哈哈。期待美好的一下午.

 


     

    

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。