Python字符串基础操作
==============字符串========
>>> s1='www.baidu.com'
>>> type(s1)
<type 'str'>
>>> type(2)
<type 'int'>
>>> type("'dsfdsjk'")
<type 'str'>
用type()测一下是什么类型
字符串的访问 s1[0]=’ s1[2]=w 用下标来访问
>>> s6='aa\nbb'
>>> print s6
aa
bb
>>> #/n是转义字符,表示换行符 各种换行符如图记载
>>> s6='aa\nbb'
>>> print s6
aa
bb
>>> s7=r'aa\nbb' #当加上r的时候就是不转义的意思【关闭转义机制】
>>> print s7
aa\nbb
>>> s8=u'aa\nbb' #当加上u的时候表示后面跟的字符串是unicode编码
>>> print s8
aa
bb
>>> ‘%10s%10d%10.2f’%(‘record’,21,25.652) 格式化字符串 %s格式化为字符串 %d格式化为整数 %f格式化为浮点数(反正前面有几个格式占位符这边就几个逗号隔开的对应值)10.2f表示浮点数占10位小数点后面保留2位 四舍五入
>>> print 'name %s age %d record %f'%('amily',25,99.9)
name amily age 25 record 99.900000
>>> s1='www.baidu'
>>> s2='.com'
>>> print s1+s2 # +加号字符串连接 +前后必须都是字符串类型
www.baidu.com
>>> s1='hello amily'
>>> s2=2
>>> print s1+str(s2) 转换为字符串类型再进行加法运算
hello amily2
>>> li1=[1]*5 #*星号 字符串重复 等于N个加法 *前为字符串*后为数字
>>> print li1
[1, 1, 1, 1, 1]
>>> li2=['aa']*5
>>> print li2
['aa', 'aa', 'aa', 'aa', 'aa']
>>> s1='111'*20
>>> print s1
111111111111111111111111111111111111111111111111111111111111
>>> s1='www.baidu.com'
>>> print s1[4] #通过[]下标访问字符串的第几个位置的值 str[index]
b
>>> s1='www.baidu.com'
>>> print s1[-4] #负数也可以,负数就是从右边为起点
.
>>>
>>> print s1[2:4] # str[start:end] 切片 start切片起点 end切片终点起点或者终点可以不填 写负数就是从右边开始
w.
>>> #这里切片起点必须小于终点,因为是从左向右切的。
如果要从右向左切片, 则str[big:small:-1], 这样是逆序输出
>>> s1='www.baidu.com'
>>> print s1[8:3:-1]
udiab
>>> s1='www.baidu.com'
>>> print s1[-1::-1] #实现字符串的逆序输出
moc.udiab.www
>>>
字符串其他常用函数
>>> s='dafdfh234234hjk'
>>> s.isalnum() #str.isalnum 判断字符串中是否均为数字或者字母
True
>>> s='sadfhd.?<dfah'
>>> s.isalnum()
False
>>>
>>> s='sdfhdjshf0'
>>> s.isalpha() #str.isalpha判断字符串中是否均为字母
False
>>> s='dfdfhdgf'
>>> s.isalpha()
True
>>> s='132746'
>>> s.isdigit() #str.isdigit判断字符串中是否均为数字
True
>>> s='sdfgydh678'
>>> s.isdigit()
False
>>> s='ABV'
>>> s.isupper() #str.isupper判断字符串中是否均为大写字母
True
>>> s='dfhu'
>>> s.islower() #str.islower判断字符串中是否均为小写字母
True
>>> s=''
>>> s.isspace() #str.isspace 判断字符串是否为空格
False
>>> s=' '
>>> s.isspace()
True
>>> s='djfdjsfh'
>>> s.upper() #str.upper字符串转化为大写字母
'DJFDJSFH'
>>> s='DJKJSDJFK'
>>> s.lower() #str.lower字符串转化为小写字母
'djkjsdjfk'
>>> s='DJKJSDJFK'
>>> s.lower()
'djkjsdjfk'
>>> s='dfhAJKH'
>>> s.upper()
'DFHAJKH'
>>> s.lower()
'dfhajkh'
>>> s=' dsjfhdsjkf kdjfhj '
>>> s.strip() #str.strip是去除某字符串左右的一个或多个空格(广义空格,\n,\t)
可以写成str.strip(‘\n’)
#str.split()前后中间的空格都能去掉
'dsjfhdsjkf kdjfhj'
>>> s.rstrip() #str.rstrip 是去除字符串右边的空格(可以去掉多个空格)
' dsjfhdsjkf kdjfhj'
>>> s.lstrip() #str.lstrip 是去除字符串左边的空格(可以去掉多个空格)
'dsjfhdsjkf kdjfhj '
#coding:utf-8
s='www.baidu.com'
s1='www'
s2='.com'
if s.startswith(s1): #str.startswith(str1) 判断字符串是否以str1开始,返回布尔值
print 'www'
if s.endswith(s2): #str.endswith(str1)判断字符串是否以str1结束,返回布尔值
print '.com'
>>> s='www.baidu.com'
>>> id(s) #id(str)查看字符串在内存中的地址
46351608
>>> s1=s.replace('b','B') #str.replace(‘a’,’b’)将字符串中的a全部替换为b
>>> id(s1)
46353008
>>> s=s.replace('w','S') #可以看到replace函数“修改了”原来的字符串,字符串位置改变了,说明其实不是原来的字符串了,so字符串是不可以被修改的,只是产生了一个新的字符串罢了
>>> id(s)
46353808
>>> print s
SSS.baidu.com
>>> s=' dsfdsf f d 234h djfha '
>>> li=s.split() #str.split()字符串分割,返回一个list类型
>>> print li
['dsfdsf', 'f', 'd', '234h', 'djfha']
这个其实用split可以直接实现,但是这里最重要的是思路的循序渐进。写比较复杂的算法一定要有循序渐进的思路,慢慢来,一点点的去实现,然后在组合在一起,尤其是循环的这种一次找不到规律,可以逐步的走几个循环,找到规律再写while或者for语句。
#coding:utf-8
def Mysplit(s):
s=s.strip()
while(s.find(' ')!=-1):
index1=s.find(' ')
s1=s[:index1]
s=s[len(s1):]
s=s.lstrip()
print s1
else:
print s
Mysplit(' dsfdsf f d 234h djfha hfkdjfdjd dkfdk dkfjadkjf dfajkdf adkfasdfhjd 34737 ')
str.split()细讲 记录split()返回的是list类型的 以sth为分隔符,分割N次(分为N+1份),取第几份。Split(‘m’,n)[x]
>>> u = "www.doiido.com.cn"
#使用默认分隔符
>>> print u.split()
['www.doiido.com.cn']
#以"."为分隔符
>>> print u.split('.')
['www', 'doiido', 'com', 'cn']
#分割0次
>>> print u.split('.',0)
['www.doiido.com.cn']
#分割一次
>>> print u.split('.',1)
['www', 'doiido.com.cn']
#分割两次
>>> print u.split('.',2)
['www', 'doiido', 'com.cn']
#分割两次,并取序列为1的项
>>> print u.split('.',2)[1]
doiido
#分割最多次(实际与不加num参数相同)
>>> print u.split('.',-1)
['www', 'doiido', 'com', 'cn']
#分割两次,并把分割后的三个部分保存到三个文件
>>> u1,u2,u3 = u.split('.',2)
>>> print u1
www
>>> print u2
doiido
>>> print u3
com.cn
去掉换行符
>>> c = '''say
hello
baby'''
>>> print c
say
hello
baby
>>> print c.split('\n')
['say', 'hello', 'baby']
分离文件名与路径
>>> os.path.split('/dodo/soft/python')
('/dodo/soft', 'python')
>>> os.path.split('/dodo/soft/python/')
('/dodo/soft/python', '')
好例子
>>> str='hello hahaha<[www.baidu.com]>gdf238728'
>>> print str.split('[',1)[1].split(']',1)[0]
www.baidu.com
>>> print str.split('[',1)[1].split(']',1)[0].split('.')
['www', 'baidu', 'com']
>>>
Python字符串基础操作的更多相关文章
- Python文件基础操作(IO入门1)
转载请标明出处: http://www.cnblogs.com/why168888/p/6422270.html 本文出自:[Edwin博客园] Python文件基础操作(IO入门1) 1. pyth ...
- Python字符串切片操作知识详解
Python字符串切片操作知识详解 这篇文章主要介绍了Python中字符串切片操作 的相关资料,需要的朋友可以参考下 一:取字符串中第几个字符 print "Hello"[0] 表 ...
- Python字符串基础一
下一篇:Python 序列通用操作介绍 写在前面 下学期开始上计算机网络的课程,现在已经在看相关书籍,希望结合python写出一个网络爬虫程序.利用学习C++后的空余时间来看看Python并在这里总结 ...
- Python 字符串大小写操作
#coding=utf-8 #python中字符串的操作 # 字符串的大小写 s='hello_wOrld_oF_you' upper_str = s.upper() print('全部大写: ',u ...
- Python字符串的操作
字符串常用操作 name = "my name is alex" # 注: python中方法名前后带下划线的是供内部使用的方法, 如方法__dir__(). 这种方法是不对外提供 ...
- day7 python字符串的操作及方法
1.字符串 1.1 字符串的操作 # 1.字符串的拼接 strvar = "我爱" + "中国" # 2.字符串的重复 strvar = "今天下午2 ...
- python字符串基础知识
1.python字符串可以用"aaa",'aaa',"""aaa""这三种方式来表示 2.python中的转义字符串为" ...
- Python—字符串的操作
字符串的操作 变量: 变量只能是 字母,数字或下划线的任意组合,但首个字符不能为数字,且不能有空格 以下关键字不能声明为变量: and ,as, assert, break ,class ,conti ...
- python字符串的操作(去掉空格strip(),切片,查找,连接join(),分割split(),转换首字母大写, 转换字母大小写...)
#可变变量:list, 字典#不可变变量:元祖,字符串字符串的操作(去掉空格, 切片, 查找, 连接, 分割, 转换首字母大写, 转换字母大小写, 判断是否是数字字母, 成员运算符(in / not ...
随机推荐
- MVC 依赖注入
本人主要是写给我自己看的,文章没有过多的解释,只留下步骤. 目的:面向接口编程,做到低耦合,高内聚 1.利用Nuget 管理工具,安装Ninject. 2.随便新建一个接口和一个实现类,我在此项目中是 ...
- redis学习笔记——(2)
4.Redis中的string类型 String类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或者序列化的对 ...
- Symfony启动过程详细学习
想了解symfony的启动过程,必须从启动文件(这里就以开发者模式)开始. <?php /* * web/app_dev.php */ $loader = require_once __DIR_ ...
- metaspolit 基础
在kali中使用metasploit,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录了.这一点比bt5要方便很多,所以现在 ...
- nonatomic, retain,weak,strong用法详解
strong weak strong与weak是由ARC新引入的对象变量属性 ARC引入了新的对象的新生命周期限定,即零弱引用.如果零弱引用指向的对象被deallocated的话,零弱引用的对象会被自 ...
- 使用Git进行代码管理
Git简介 Git 是 Linux Torvalds 为了帮助管理 Linux® 内核开发而开发的一个开放源码的版本控制软件. 先讲一下如何把开源项目fork到自己的github中 1. 点击图中的 ...
- Windows7下出现“不支持此接口”的解决方案
今天学校里的辅导员突然找到我说Windows 7下什么文件夹都打不开了,提示“不支持此接口”.怀疑是病毒所致,但运行杀毒软件没有结果.重启也问题依旧. 上网查了之后找到了修复方法: 在命令行中输入fo ...
- eclipse插件:打开选中文件所在的目录
easyexplore是一个eclipse的小插件,它能直接打开选中文件所在的目录 下载: 地址:http://sourceforge.net/projects/easystruts/files/,我 ...
- Google-解决在调试页面或者js时总是提示烦恼的断点问题
按F12键,然后切换到Source标签,看底下的那个跟暂停一样的图标是不是变成蓝色或紫色了? 如果是蓝色或者紫色,则把他切换到“灰色”状态(点击图标就会切换成不同的状态.或者可能是其他颜色状态),如下 ...
- Spring控制Hibernate的缓存机制ehcache
首先在spring.xml中进入bean <prop key="hibernate.cache.use_second_level_cache">true</pro ...