lam*_*lex 44 python python-3.x f-string
我想知道如何在使用 f-string 的同时r获取原始字符串文字。我目前有它如下但想要允许任何名称替换的选项Alex我正在考虑添加一个 f 字符串,然后用Alex花括号替换并将用户名放在里面,但这不适用于r.
username = input('Enter name')
download_folder = r'C:\Users\Alex\Downloads'
Run Code Online (Sandbox Code Playgroud)
raj*_*ah9 94
您可以将ffor a f-string 与rfor a raw string 结合使用:
user = 'Alex'
dirToSee = fr'C:\Users\{user}\Downloads'
print (dirToSee) # prints C:\Users\Alex\Downloads
Run Code Online (Sandbox Code Playgroud)
该r只禁止反斜杠转义序列处理,而不是F-字符串处理。
引用文档:
'f' 可以与 'r' 组合,但不能与 'b' 或 'u' 组合,因此原始格式化字符串是可能的,但格式化字节文字不是。
...
除非存在“r”或“R”前缀,否则字符串和字节文字中的转义序列将被解释...
Jam*_*ger 10
或者,您可以使用该str.format()方法。
name = input("What is your name? ")
print(r"C:\Users\{name}\Downloads".format(name=name))
Run Code Online (Sandbox Code Playgroud)
这将通过插入name值来格式化原始字符串。
正如其他人提到的,确实可以混合r和f。但要小心,因为默认情况下内插的字符串不是原始的:
not_escaped = "\not_escaped"
half_escaped = rf"escaped_{not_escaped}"
print(half_escaped)
### outputs:
# escaped_
# ot_escaped
Run Code Online (Sandbox Code Playgroud)
您也必须使用r插值字符串:
escaped = r"\n_escaped"
full_escaped = rf"escaped_too_{escaped}"
print(full_escaped)
# escaped_too_\n_escaped
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16570 次 |
| 最近记录: |