注册 登录
编程论坛 Python论坛

有加f跟不加f差异再哪?

Z89 发布于 2023-05-12 10:56, 268 次点击
url = f"https://api.xxx"

前面多个f的作用是什么?有加f跟不加f差异再哪?



程序代码:

url = f"https://api.xxx"
data = {   "clientKey": 'f2b575ef62b6be3bf11611',
           "taskI": taskI       }
result = requests.post(url, json=data, verify=False).json()
5 回复
#2
wp2319572023-05-12 10:58
回复 楼主 Z89
f 是格式化字符串时使用 比如里面有需要替换的变量啥的了
而一般防止转义  我们使用r
#3
Z892023-05-12 11:25
一文弄懂Python 字符串引号之前的 u、r、b、f 的作用

字符串前的 u
b = u'我喜欢你'
u 是 unicode 的缩写,它的作用是告诉解释器,后面的字符串以 unicode 格式进行编码,一般用于非 ASCII 字符,比如,我们的中文。
如果没有 u,基本上就会碰到烦人的编码问题了。
==============================================================
字符串前的 r
b = r"我\r\n喜欢\r\n你"
r 是 raw 的缩写,表示后面的字符串就不要使用 \ 转义了。
默认情况下,特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的 \n 表示换行,\t 表示 Tab等。 r' 的意思就是说 \n 是两个字符 \ 和 n,而不是一个换行符。
r 前缀一般用于正则表达式,也就是 re 模块
==============================================================
字符串前的 b
b = b'我喜欢你'
b 是 byte 的缩写,表示后面的字符串是 bytes 对象。
一般的网络编程中,传输协议是字节类型的,客户端和服务器端一般只认 bytes 类型数据,比如 send() 函数的参数和 recv() 函数的返回值。
在 Python3 中,bytes 类型和 str 类型的相互转换为
b = '我喜欢你'.encode('utf-8')
s = b.decode('utf-8')
==============================================================
字符串前的 f
print(f'{name} done in {time.time() - t0:.2f} s')
f 是 format 的缩写,表示后面的字符串支持大括号内的 python 表达式,其实就是 format() 函数的缩写的意思啦
#4
Z892023-05-12 11:27
以下是引用wp231957在2023-5-12 10:58:14的发言:

f 是格式化字符串时使用 比如里面有需要替换的变量啥的了
而一般防止转义  我们使用r

了解了,谢谢
#5
外部三电铃2023-05-12 13:04
这个概念叫“f-strings”,加上f以后字符串里面就可以直接插入变量了,当然还有更好玩的用法

详见文档:
中文版 https://doc.bccnsoft.com/docs/python-3.9.1-docs-html-cn/tutorial/inputoutput.html#formatted-string-literals
英文版 https://doc.bccnsoft.com/docs/python-3.9.1-docs-html/tutorial/inputoutput.html#formatted-string-literals
#6
东海ECS2023-05-12 19:48
f-str是格式化字符串的一种方式.
可以把{变量名}放在f-str里.

例如


如果a="Hello",那么
f"a: {a}"
结果为a: Hello
上面的代码相当于
"a: {}".format(a)
也相当于
"a: %s" % a

1