1代码执行后报错内容:
2这类问题归结就是对文件中字符串的处理(换行‘\n’、空格‘ ’、回车‘\r’的处理)
3目的是:将字符串类型数据的多行数据,合并为一行,进行输出来用
- 去除空格的几种形式
" abc ".strip()
" abc ".lstrip()
" abc ".rstrip()
" a b c ".replace(' ','')
- .strip() 只能够去除字符串首尾的空格,不能够去除中间的空格
str=' 如果你突然打了\n' \
' 个喷嚏\n' \
' 那一定是我\n' \
'在想\n' \
' 你 '
print(str)
print("="*50)
print(str.strip())#.strip() 只能够去除字符串首尾的空格,不能够去除中间的空格
我们可以看到第一行的空格已经被去除了!
- .replace(’ ', ‘’) 将字符串中的空格’ ‘进行替换,替换为’‘
#.replace(' ', '') 将字符串中的空格’ ‘进行替换,替换为’‘,也就是两个单引号,里面什么都没有,就相当于把字符串进行一个自动缩进
print(str.replace(' ',''))
如图可以看到字符串中的所有的空格都被‘’替换了,相当于被顶格或者缩进了!
- .replace(‘\n’, ‘’) 去除换行
# .replace('\n', '') 去除换行
print(str.replace(' ','').replace('\n',''))
现在我们把换行去掉了,可以看到原本拆开的数据被合并为了一行数据!
- 加入‘\r’即回车的字符串,有时候会导致输出,得不到自己想要的结果,如何处理?
str=' 如果你突然打了\n' \
' 个喷嚏\n' \
' 那一定是我' \
'王心凌\r'\
'在想\n' \
' 你 '
print(str)
print("="*50)
print(str.replace(' ','').replace('\n',''))
原因是: \r 代表回车,也就是打印头归位,之前清空,从下一行的开头开始。 而\n代表换行,跳到下一行开头
处理方法如下:
str=' 如果你突然打了\n' \
' 个喷嚏\n' \
' 那一定是我' \
'王心凌\r'\
'在想\n' \
' 你 '
print(str)
print("="*50)
print(str.replace(' ','').replace('\n','').replace('\r',''))
**
综上:也就是一行代码:
print(str.replace(' ','').replace('\n','').replace('\r',''))
,重点是理解怎么处理的 其他解决办法:比如if判断 名字
如果出现了空格 或者 换行 就替换成别的字符之类的
**