浅析python字符串前加r、f、u、l 的区别


Posted in Python onJanuary 24, 2021

先给大家介绍下Python 字符串前面加u,r,b,f的含义(字符串前缀)

1、字符串前加 u

例:u"我是含有中文字符组成的字符串。"

作用:

后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

2、字符串前加 r

例:r"\n\n\n\n”

# 表示一个普通生字符串 \n\n\n\n,而不表示换行了。

作用:

去掉反斜杠的转移机制。

(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n”表示换行,”\t”表示Tab等。 )

应用:

常用于正则表达式,对应着re模块。

3、字符串前加 b

例: response = b'<h1>Hello World!</h1>'     # b' ' 表示这是一个 bytes 对象

作用:

b" "前缀表示:后面字符串是bytes 类型。

用处:

网络编程中,服务器和浏览器只认bytes 类型数据。

如:send 函数的参数和 recv 函数的返回值都是 bytes 类型

附:

在 Python3 中,bytes 和 str 的互相转换方式是

str.encode('utf-8')
bytes.decode('utf-8')

4、字符串前加 f

import time
t0 = time.time()
time.sleep(1)
name = 'processing'
# 以 f开头表示在字符串内支持大括号内的python 表达式
print(f'{name} done in {time.time() - t0:.2f} s')

输出:

processing done in 1.00 s

下面介绍下python字符串前加r、f、u、l 的区别

f-strings 是指以 f 或 F 开头的字符串,其中以 {} 包含的表达式会进行值替换。(目前支持python3.6版本)

下面看下 f-strings 的使用方法

基本使用(作用:替换值)

>>>name = 'xiaoming'
>>> age = 18
>>> f"hi, {name}, are you {age}"
#结果如下
'hi, xiaoming, are you 18'
>>> F"hi, {name}, are you {age}"
'hi, xiaoming, are you 18'

在字符串前加r可防止字符串转义

作用:没有转义特殊或不能打印的字符。

>>> s='abc\nabc'
>>> s
'abc\nabc'
>>> print s
abc
abc
>>> s=r'abc\nabc'
>>> s
'abc\\nabc'
>>> print s
abc\nabc

u/U:表示unicode字符串

不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。
一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。 建议所有编码方式采用utf8

字符串前加 “l”

表示宽字符,unicode字符( unicode字符集是两个字节组成的。L告示编译器使用两个字节的 unicode 字符集) 如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。

不加时占用字节
strlen("asd") = 3; 
 
 加之后占用字节
strlen(L"asd") = 6;

到此这篇关于浅析python字符串前加r、f、u、l 的区别的文章就介绍到这了,更多相关python字符串r、f、u、l内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python的web框架中编写创建日志的程序的教程
Apr 30 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
深入理解Python 关于supper 的 用法和原理
Feb 28 Python
Python 从相对路径下import的方法
Dec 04 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 Python
Python shutil模块用法实例分析
Oct 02 Python
python线程信号量semaphore使用解析
Nov 30 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
Python代码需要缩进吗
Jul 01 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
Jan 26 Python
python 图像增强算法实现详解
Jan 24 #Python
详解用 python-docx 创建浮动图片
Jan 24 #Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 #Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 #Python
详解python的变量缓存机制
Jan 24 #Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 #Python
利用Python函数实现一个万历表完整示例
Jan 23 #Python
You might like
操作Oracle的php类
2006/10/09 PHP
我的论坛源代码(十)
2006/10/09 PHP
Snoopy类使用小例子
2008/04/15 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
php上传文件常见问题总结
2015/02/03 PHP
匹配任意字符的正则表达式写法
2010/04/29 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
js字符串转成JSON
2013/11/07 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
2014教师个人自我评价范文
2014/09/13 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
顶岗实习协议书
2015/01/29 职场文书
出国留学英文自荐信
2015/03/25 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书
Java 数组的使用
2022/05/11 Java/Android