空格字符串的处理技巧
① lstrip() 用于截掉字符串左边的空格或指定字符。
返回截掉字符串左边的空格或指定字符后生成的新字符串。
* 匹配时不是按照整个字符串匹配的,而是一个一个进行匹配。但是如果混有
str = 'abcdabcdPYTHON'
print(str.lstrip('dcba'))
#PYTHON
str = ' PYTHON'
print(str.lstrip())
#PYTHON
② rstrip() 删除 string 字符串末尾的指定字符。
用法同lstrip。
str = 'PYTHONabcddbcd'
print(str.rstrip('abcd'))
#PYTHON
str = 'PYTHON '
print(str.rstrip())
#PYTHON
③ strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。
* 该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
str = '122223312PYTHON12311211'
print(str.strip('321'))
#PYTHON
str = ' PYTHON '
print(str.strip())
#PYTHON
由于匹配时是从开头的第一个字符和结尾的最后一个字符开始的,所以当第一个字符/最后一个字符不在strip中,便不会继续进行匹配。以上的lstrip和rstrip也是一个道理。
str = '! PYTHON !'
print(str.strip())
#! PYTHON !
str = ' !PYTHON! '
print(str.strip())
#!PYTHON!
④ split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num+1 个子字符串。
str.split(str="", num=string.count(str)).
- str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num -- 分割次数。默认为 -1, 即分隔所有。
返回分割后的字符串列表。
str = 'I#am#a#student.#hhhh'
print(str.split('#',3))
#输出结果:['I', 'am', 'a', 'student.#hhhh']
split(),分隔时把多个空格当成一个空格。
split(' '),分割时一个空格就是一个空格。
str = 'I am a student.'
print(str.split())
print(str.split(' '))
#输出结果:['I', 'am', 'a', 'student.']
# ['I', '', '', 'am', '', '', 'a', '', '', 'student.']
sep和end
在print函数中,输出时逗号之间默认用空格隔开,末尾默认自动换行。
print("Python2","Python3")
print("I'm a new line.")
''' 输出结果
Python2 Python3
I'm a new line.
'''
sep可以用来设置字符串之间的分隔符,end可以用来设置print结束后的字符。
print("Python2","Python3",sep='->->->',end=' ')
print("I'm a new line.")
#Python2->->->Python3 I'm a new line.
没有自增符的原因
Python中不能写n++只能写作n+=1或者n=n+1。
因为+=是把操作后的结果赋给了新生成的变量。但是++改变了对象本身,而Python规定,数值对象是不可改变的。(在C语言中事先定义好变量类型,在内存中开辟指定的空间,然后再开始赋值。而在Python中,是事先在内存划分空间来存放字符串/整型/浮点数,再用变量名去指向它。)
btw变量赋值的过程举个例子。
x = "Python2"
y = x
x = "Python3"
print(y) #Python2
① 创建字符串"Python2"和变量x,并将x指向该字符串。
② 创建变量y,并将y指向a所指向的"Python2"
③ 创建字符串"Python3",并将x的指向改成新生成的字符串。(这个过程不影响y的指向)
格式化输出
1.%用法
%
运算符就是用来格式化字符串的。在字符串内部,%s
表示用字符串替换,%d
表示用整数替换,有几个%?
占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?
,括号可以省略。
print('%2d-%02d' % (5, 4))
print('%.2f' % 3.1415926)
print('hello %s,the number is %d' % ('Python',87))
'''
5-04
3.14
hello Python,the number is 87
'''
2.format用法
相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’。
print('{} {}'.format('hello','python')) #不带编号
print('{0} {1}!{0}!'.format('hello','python')) #带数字编号
print('{x} {y}'.format(x='hello',y='python')) #带关键字
'''
hello python
hello python!hello!
hello python
'''