Python-string

在刷题的过程中,发现自己使用Python时候很多东西东西都不太熟悉,说句实在话,可能我连答案都看不明吧。所以在这个过程中我会去看一些好的文章,然后在这里分享,也是方便自己以后的查阅以及知识的巩固。

如题所示,这篇文章我将主要聊一聊Python中字符串的搞法,参考的文章链接在底部。

创建字符串

创建字符串是非常简单的,跟js差不多,但是也让我们来看一下几种不同的创建方式,有一点需要注意的是3个双引号或者单引号是可以创建多行字符创,类似于js中的``符号

1
2
3
4
5
6
7
8
9
10
11
# Python string examples - all assignments are identical.
String_var = 'Python'
String_var = "Python"
String_var = """Python"""
# with Triple quotes Strings can extend to multiple lines
String_var = """ This document will help you to
explore all the concepts
of Python Strings!!! """

# Replace "document" with "tutorial" and store in another variable
substr_var = String_var.replace("document", "tutorial")
print (substr_var)

遍历字符串中的每个元素

Python对字符串不仅支持正向索引,还会支持反向索引,什么概念,看看下面的table就知道了

P Y T H O N S T R I N G
0 1 2 3 4 5 6 7 8 9 10 11 12
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
1
2
3
4
5
6
7
sample_str = 'Python String'
print (sample_str[0]) # 返回首字母
# output: P
print (sample_str[-1]) # 返回最后一个字母
# output: g
print (sample_str[-2]) # 返回倒数第二个字母
# output: n

为了截取字符串,我们会用到截取操作符,就是冒号,对,你没有听错。有一点需要注意的是[a,b],实际返回的是索引a到所以b-1,所以是不包括下标b的。

1
2
3
4
5
6
7
8
9
sample_str = 'Python String'
print (sample_str[3:5]) #return a range of character
# ho
print (sample_str[7:]) # return all characters from index 7
# String
print (sample_str[:6]) # return all characters before index 6
# Python
print (sample_str[7:-4])
# St

理解非法字符串使用及报错提示

索引值不能大于字符串的长度

1
2
3
4
sample_str = "Python Supports Machine Learning."
print (sample_str[1024]) #index must be in range

# IndexError: string index out of range

索引必须是整数

1
2
3
4
sample_str = "Welcome post"
print (sample_str[1.25]) #index must be an integer

# TypeError: string indices must be integers

修改/删除字符串

Python字符串设计是不可变的,意思是你不能修改字符串的内容,但是可以通过重新赋值来改变字符串的值

1
2
3
4
5
6
7
8
9
sample_str = 'Python String'
sample_str[2] = 'a'

# TypeError: 'str' object does not support item assignment

sample_str = 'Programming String'
print (sample_str)

# Output=> Programming String

同样,我们也不能删除字符串的某些内容

1
2
3
4
5
6
7
sample_str = "Python is the best scripting language."
del sample_str[1]
# TypeError: 'str' object doesn't support item deletion

del sample_str
print (sample_str)
# NameError: name 'sample_str' is not defined

字符串操作符

操作符 含义 描述 示例代码
+ 合并 将两个字符串合并为一个 var1 = ‘Python’
var2 = ‘String’
print (var1+var2)
# PythonString
* 重复 将字符串重复N遍 var1 = ‘Python’
print (var1*3)
# PythonPythonPython
[ ] 裁切 打印某一个裁切的元素 var1 = ‘Python’
print (var1[2])
# t
[ : ] 范围裁切 打印某一串裁切的元素 var1 = ‘Python’
print (var1[2:5])
# tho
in 包含关系 判断字符串是否包含所给元素, 类似于js的indexof var1 = ‘Python’
print (‘n’ in var1)
# True
not in 包含关系 判断字符串是否包含所给元素 var1 = ‘Python’
print (‘N’ not in var1)
# True
for 循环 熟悉的for循环啦 var1 = ‘Python’
for var in var1:
        print (var)
# P
# y
# t
# h
# o
# n
r/R 原生字符串标识 在字符串前面加这样一个标识,字符串里面的反斜杠就不会被转义 print (r’\n’)
# \n
print (R’\n’)
# \n

字符串格式化操作符

转义符的使用,看看下面示例:

1
2
3
4
5
6
7
8
9
print ("Python is "widely" used language")

# SyntaxError: invalid syntax

# After escaping with double-quotes

print ("Python is \"widely\" used language")

# Output: Python is “widely” used language

百分号的使用,各种各样的对应

1
2
3
4
print ("Employee Name: %s,\nEmployee Age:%d" % ('Ashish',25))

# Employee Name: Ashish,
# Employee Age: 25
规范字符 对应使用
%c 单个字符
%s 字符串 (采用str()的显示)
%i 十进制整数
%d 十进制整数
%u 非十进制整数
%o 八进制整数
%x 十六进制整数(小写)
%X 十六进制整数(大写)
%e 指数 (基底写为 e)
%E 指数 (基底写为 E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
1
2
3
print (u' Hello Python!!')

#Hello Python

统一码字符串的支持

Python内置字符串操作函数

字符串转换函数

字符串对比函数