【Python】空格字符串的处理技巧 | sep和end | 没有自增符的原因 | 格式化输出

空格字符串的处理技巧

 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
'''

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值