.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补全
''
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('')
-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=['','','']
>>> '-'.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'.split('-3-')
['1-2', '4-5']
>>> '123\n456'.splitlines()
['', '']
>>> '123\n456'.split('\n')
['', '']
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 周二到周六班次上班还是有好处的。周一去滑冰场简直就是我们的专场。没其他人,适合初学者练习。哈哈。期待美好的一下午.
.Net程序员之Python基础教程学习----字符串的使用 [Second Day]的更多相关文章
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- .Net程序员之Python基础教程学习----函数和异常处理[Fifth Day]
今天主要记录,Python中函数的使用以及异常处理. 一.函数: 1.函数的创建以及调用. def Add(val1,val2): return val1+val2; print Add( ...
- .Net程序员之Python基础教程学习----判断条件与循环[Fourth Day]
今天学习Python的判断条件与循环操作. 一. 布尔变量: 在学习判断条件之前必须的了解bool变量,在Python中bool变量与C语言比较类似,与.net差别比较大,其中下面集中情况需要 ...
- .Net程序员之Python基础教程学习----字典的使用 [Third Day]
今天学习了字典的使用, 所谓的字典其实就是键值对数据, 一个字典里面有唯一的Key对应一个value,Key是唯一的,Value不唯一. 在.net添加相同的Key会报错,在Python,若出现相 ...
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
- 【学习笔记】Python基础教程学习笔记
教程视频网盘共享:http://pan.baidu.com/s/1hrTrR5E 03-python基础.if判断 print 输出数据 print("hahahah")----- ...
- Python基础教程学习(四)类的创建与继承
类中可以有方法,类外也可以有函数,其实类就是一种封装, Python中可以自己定义一个函数,一可以把这个函数在类中封装成一个方法, 其中的属性和方法自然就从父类中继承来了, 要想获得多个类的属性和功能 ...
- Python基础教程学习(三)
如何定义类 class ClassName(base_class[es]): "optional documentation string" static_member_decla ...
- Python基础教程学习笔记:第二章 列表和元组
1.序列中元素的索引: 第一个元素索引是0,第二个是1,依次递增 最后一个元素索引是-1,倒数第二个是-2,依次递减 2.序列(Sequence)的种类: 列表(list).元组(tuple).字符串 ...
随机推荐
- C# 泛型的协变和逆变
1. 可变性的类型:协变性和逆变性 可变性是以一种类型安全的方式,将一个对象当做另一个对象来使用.如果不能将一个类型替换为另一个类型,那么这个类型就称之为:不变量.协变和逆变是两个相互对立的概念: 如 ...
- 钉钉客户端JS-API权限签名算法.NET版
前段时间写了一篇博文<钉钉如何进行PC端开发>,在里面并未解决本地生成签名的问题,需要到官网进行生成,由于钉钉门票等认证信息会超期,因此,必须能本地用代码自动更新相关参数信息,来换取签名. ...
- 15款免费的响应式 WordPress 主题下载
响应式设计主题最适合杂志网站,博客网站,想要在自己网站上展示自己作品的用户.支持视网膜显示使其在 iPad,iPhone,Mackbook,iMac 等设备上有更高的分辨率. 响应式和现代设计风格的多 ...
- [应用][js+css3]3D盒子导航[PC端]
CSS3构建的3D盒子之导航应用 1.在用css3构建的盒子表面,放上iframe,来加载导航页面. 2.鼠标左键按下移动可旋转盒子,寻找想要的网址. 3.左键单机盒子表面,将全屏现实所点盒子表面的网 ...
- Vault 不同版本的API的异同
大家知道,Autodesk Vault 2014有几个版本,依次为( Basic, Workgroup, Professional),不同版本的功能不相同,关于Vault产品功能的不同之处可以在Vau ...
- [Android]AndroidBucket增加碎片SubLayout功能及AISubLayout的注解支持
以下内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3709957.html 之前写过一篇博客,是使用Fragment来实现T ...
- UITableViewController和延时执行、自定义控件
1.在UITableViewController中,self.view就是self.tableView, 两个对象的指针地址是一样的 2.自定义类继承UITableViewCell, 重写父类方法 / ...
- JSON 转javabean 利器
别再对着json来手写javabean啦.这个工作完全不要脑子,而且耗时. 这里给大家提供三种方式: android studio版: 万能的插件:GsonFormat 如何安装? Preferenc ...
- iOS 全局断点崩溃
设置全局断点出现奔溃,可以点击继续运行不影响程序,不是程序的问题,webview和自定义xib View使用的时候
- IOS设计模式-观察者模式
前言:23种软件设计模式中的观察者模式,也是在软件开发中,挺常用的一种设计模式.而在苹果开发中,苹果Cocoa框架已经给我们实现了这个设 计模式,那就是通知和KVO(Key-Value Observi ...