所有的练习都是用的python3 ,还没试过python2

############## 必须要会的7个基本方法 ##############

join 

split

find

strip

upper / lower

replace

其中 join   split    strip   真的是太常用了。

#!/usr/bin/env python
# coding:utf-8 # 关于方法中的参数,必要参数和可选参数的比喻太生动了。
# 几个字符串方法 test = "alexamdexr"
a = test.casefold() #更牛逼的小写,支持多国语言
print(a) b = test.lower() #常用的小写,支持英语
print(b) c = test.capitalize() #首字母大写
print(c) d = test.center(20,"$") # 占位多个,并且把自己放中间,其余位置补充字符,默认为空格
print(d)
d2 = test.ljust(20,"!") # 把自己放左边
d3 = test.rjust(20,"#") # 把自己放右边
print(d2)
print(d3) e = test.count('ex') #寻找子序列出现的次数,也可以指定起始
print(e) f = test.find('am',3,6) # 寻找子序列,返回下标,找不到返回 -1
print("find的结果:",f)
# 字符串函数中的参数,都常是>= 和 < 的。如test.find("am", 3, 5) 的位置就是3和4,小于5 g = test.startswith("e") #是否以 * 开头
print(g)
h = test.endswith("ex") # 是否以 * 结尾
print(h)
#!/usr/bin/env python
# coding:utf-8 tst = "thisisasb 11 22"
# expandtabs()是将字符串里面的tab制表符换成空格,如果没有指定tabsize参数,默认一个tab转化成8个空格。
m = tst.expandtabs(1)
print(m) test ="username: admin\tpassword: 123\temail: abcde@163.com\nusername: user\tpassword: 1234\temail: abcdefg@sohu.com\nusername: tomashe\tpassword: 123456\temail: abc@sohu.com\n"
v = test.expandtabs(20)
print(v)
# 输出了整齐的列表形式。

字符串的函数很多,挑了一些可能会用到的做了练习。 还是pycharm的 按住 ctrl 点击 str 可以很方便地找到解释。

#!/usr/bin/env python
# coding:utf-8 # format 将一个字符串中的占位符替换为指定的值
test = 'i am {name}, age {a}'
print(test)
a = test.format(name="Tom",a=32)
print(a) test2 = 'you are {0}, age {1}'
b = test2.format("SB",12)
print(b) c = test.format_map({"name":"Jerry", "a":43})
print(c) # index找不到直接报错 建议使用find()
# d = test.index("d") # isalnum 判断字符串是否只有字母和数字
test3 = "abc_123"
e = test3.isalnum()
print(e) # 汉字也算alpha
tt = "abcde中国"
e2 =tt.isalpha()
print("是否字母",e2) # 练习 str 中的其它方法
# strip()除去两边空格; lstrip()去左边的, rstrip()去掉右边的; 默认\r\t\n也能去掉
te = " abCd efder "
f = te.strip()
print(f) te2 = "abcdefab"
f2 = te2.lstrip("ab") # 也可以指定去除字符串
print("lstrip: ",f2)
f3 = te2.rstrip("ab")
print(f3) g = te.swapcase() # 大小写全换
print(g) h = te.replace("d","z") #字符串替换
print(h) j = test.title() # 每个单词首字母大写
print(j) k = j.istitle() # 是否title
print(k) tst = "2345③"
v1 = tst.isdecimal() #带圈的不算
v2 = tst.isdigit() # 带圈的数字也算
v22 = tst.isnumeric() # 带圈的,中文的都能识别
print("是否数字:",v1, v2,v22) v3 = "1234.45" # 小数点就不是数字了。
v4 = v3.isdigit()
v5 = v3.isdecimal()
v55 = v3.isnumeric()
print(v4,v5,v55)
#!/usr/bin/env python
# coding:utf-8 import keyword print(keyword.iskeyword("def")) # 标识符 字母 数字 下划线
t = "_def32 "
v = t.isidentifier() #是否标识符, 空格不是
print("isidentifile",v) v2 = t.isprintable() # 是否有不可见字符,如\n \t
print(v2) t2 = " "
v3 = t2.isspace() # 是否空格 \t\n\r 也算. 空字符串不算。
print("isspace ",v3) # ***** 很重要的一个函数 join 要劳记
test = "你是风儿我是沙。 You are wind i am dust. 123456"
res = "_".join(test)
print(res) # 结果连空格都被join了。 a1 = "abcdefghijklmnopqrst"
m1 = str.maketrans("aeio", "") # 先建立对应关系
a2 = a1.translate(m1) # 将字符串中找到替换成对应的。
print(a2) b1 = "tom;jerry;karl;hand"
c1 = b1.partition(";") # 以指定的字符串为分隔,从左边找到的第一个为准,将其分为三段,分隔符也作为一个元素
print(c1) c2 = b1.rpartition(";") # 从右边找到的第一个为准.
print(c2) c3 = b1.split(";") # 以指定字符串为分隔,完全分割。但是不保留分隔符本身。
print(c3)
c4 = b1.split(";",1) #指定最多分一个。
print(c4)
# 以后会有一个表达式版的计算器。
# 后续学到正则表达式时,将包含有以上2个函数的功能。 d1 = "abcde\nfghikj\ndaemon"
e1 = d1.splitlines() # 以换行符来分割, 如果加参数True ,则保留换行符
print(e1)
# 方法太多,只能大概有个印象,不可能背会。 所以要使用IDE查看定义。

补充一下第 7 种: replace

#!/usr/bin/env python
# coding:utf-8 name ="tom & jerry jessies"
s = name.replace("j","T",1) # 第3个参数是指定替换几个。不指定则全部替换
print(s)

继续补充:

#!/usr/bin/env python
# coding:utf-8 # 通过下标索引获取字符串中的某个字符 # 1. 索引
test = "alexerdor"
a = test[0]
print(a) # 2. 切片
b = test[0:2] # 小于2, 不包括2
print(b)
c = test[0:-1] # 负1的意思是到最后减1
print(c) # 3. 长度
test2 = "中国人"
d = len(test2) # python3中返回3, 2.7中则返回9 (因为utf8的字节长度是3 )
print(d) # 4. 循环输出
txt = "大数据分析挖掘与开发技术"
#
# n = 0
# while n < len(txt):
# v = txt[n]
# print(v)
# n += 1 # For循环 for t in txt: # 简单的方法,轻松地得到和上面循环输出方法一样的结果。
print(t) ######################## 记住以上4 种,以及前面必须的 6 种普通方法。 # for dict bdict = {}
bdict['aaa'] = 1
bdict['bbb'] = 2
bdict['ccc'] = 3
bdict['ddd'] = 4
bdict['eee'] = 5 # python2.7中,字典只能输出下标, 并且不是按顺序输出: 针对key的hash取模
for v in bdict:
print (v) # 改动后
for k, v in bdict.items():
# print(k + " ===> " + str(v))
print("{}===>{}".format(k,v)) #使用format方法输出。

关于字符串:一旦创建后在内存中是不可修改的。而我们操作时的修改拼接等操作,会重新创建一个新的字符串。

继续补充: range

#!/usr/bin/env python
# coding:utf-8 # 1. replace
name ="tom & jerry jessies"
s = name.replace("j","T",1) # 第3个参数是指定替换几个。不指定则全部替换
print(s) # 2. range 帮助创建连续数字,通过步长来指定不连续
test = range(0,100,9) # 第3个参数是步长
for e in test:
print(e) ## 练习: 将文本对应的索引打印出来。
str_name = "分布式文件系统HDFS"
l = len(str_name)
rg = range(0,l)
for a in rg:
print(a, str_name[a]) # 老师的讲解 简写
txt = input(">>>")
for item in range(0,len(txt)):
print(item, txt[item])

发现一个PDF版的教程,写得不错,简洁明了。 点击下方链接下载:

简明python3教程

Python基础04_str_方法的更多相关文章

  1. python基础--魔法方法、迭代器、上下文管理

    isinstance:判断一个对象是否是某个类的实例 参数一:要判断的对象 参数二:要判断的类型 issubclass:判断一个类是否是另一个类的子类 参数一:是待判断的子类 参数二:待判断的父类 _ ...

  2. Python基础之类方法和静态方法

    小叙一会儿: 通常情况下,在类中定义的所有函数(注意了,这里说的就是所有,跟self啥的没关系,self也只是一个再普通不过 的参数而已)都是对象的绑定方法,对象在调用绑定方法时会自动将自己作为参数传 ...

  3. python基础----__slots__方法、__call__方法

    ''' 1.__slots__是什么:是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性) 2.引子:使用点来访问属性本质就是在访问类或者对象的_ ...

  4. Python基础数据类型方法补充

    str 补充的方法: capitalize():首字母大写,其余变小写 s = 'liBAI' s1 = s.capitalize() print(s1) # Libai swapcase():大小写 ...

  5. Python基础学习笔记(八)常用字典内置函数和方法

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-dictionary.html 3. http://www.lia ...

  6. Python基础学习笔记(六)常用列表操作函数和方法

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-lists.html 3. http://www.liaoxuef ...

  7. Python基础------列表,元组的调用方法

    Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...

  8. 二十六. Python基础(26)--类的内置特殊属性和方法

    二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...

  9. Python基础学习Day4 列表的使用方法、range 用法、in用法

    一.列表 1.1列表:python基础数据类型之一:其他语言也有列表的概念,js 数组,可索引 ,可切片,可加步长 1.2列表的索引,切片,切片+ 步长 结果: 注意:列表里元素的数据类型,就是它本身 ...

随机推荐

  1. Hbase伪分布式安装

    前面的文章已经讲过hadoop伪分布式安装,这里直接介绍hbase伪分布式安装. 1. 下载hbase 版本hbase 1.2.6 2. 解压hbase 3. 修改hbase-env.sh 新增如下内 ...

  2. 【javascript】script标签的async异步解析

    <script src="script.js"></script> 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染 ...

  3. Linux基础命令---sysctl修改内核参数

    sysctl sysctl指令用来修改正在运行的内核参数,可以修改的参数都保存在/proc/sys/目录中,修改会立即生效.Linux中的sysctl支持需要Procfs.您可以使用sysctl来读取 ...

  4. GO流程控制

    Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码.降低重复代码而生的结构,不常用,属于扩展类的流程控制. if else if基本写法 if 表达式1 { 分支1 ...

  5. Docker Swarm 配置文件存储

    Docker Swarm 配置文件存储 config:宿主级容器服务配置文件单独保存到docker中存储调用. 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理 ...

  6. rds下载备份集

    python版本[testuser@localhost tmp]$ python -VPython 2.7.5 需要提前安装RDS[root@localhost ~]# yum -y install ...

  7. JS设计模式(11)中介者模式

    什么是中介者模式? 中介者模式:对象和对象之间借助第三方中介者进行通信. 定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的 ...

  8. Python新手入门英文词汇笔记(1-2)

    英文词汇总结一.循环1.for…in…循环的使用2.while…循环的使用本节英文单词与中文释义:1.for:因为2.while:当…时…3.range:范围4.sep(separate):分隔5.f ...

  9. makefile中的patsubst函数有何作用?

    答:这是个模式替换函数,格式为: $(patsubst <pattern>,<replacement>,<text>) 查找text中的单词,如果匹配pattern ...

  10. Greeting Card

    问题 G: Greeting Card 时间限制: 1 Sec  内存限制: 128 MB 提交: 666  解决: 59 [提交] [状态] [命题人:admin] 题目描述 Quido plans ...