提问人:Wör Du Schnaffzig 提问时间:4/13/2021 最后编辑:BoannWör Du Schnaffzig 更新时间:4/14/2021 访问量:594
为什么这个使用 Python f 字符串的 print 语句会输出双括号?
Why does this print statement using a Python f-string output double parentheses?
问:
在以下代码中,我输出可用于索引列表的值范围。
但是,由于 Python 格式文字的一些奇怪之处,输出包含两个左括号和两个右括号,而不是一个。
我看不出我的格式字符串有什么问题。我只是把所有应该用大括号替换的表达式都放在大括号里。其余的不应该被替换。lst
lst = [1,2,3,4,5,6]
print(f"range({-len(lst), len(lst)})")
> range((-6, 6))
答:
5赞
Mad Physicist
4/13/2021
#1
表达式是一个元组。通常,组成元组的是逗号,而不是括号。因此,您的输出显示显式编写的外括号和元组的内括号。为避免这种情况,请为要打印的每个项目设置单独的格式:-len(lst), len(lst)
print(f"range({-len(lst)}, {len(lst)})")
或者,您可以删除显式括号:
print(f"range{-len(lst), len(lst)}")
评论
0赞
Wör Du Schnaffzig
4/13/2021
对不起,我应该自己得出结论。有时人们看不到树木的森林。
0赞
Mad Physicist
4/13/2021
@pqans。不用担心。我强烈怀疑这个问答对未来的读者有用:)
0赞
zatro
4/13/2021
#2
您应该单独放置大括号,而不是全部。喜欢:
print(f"range({-len(lst)}, {len(lst)})")
如果这不起作用,那么我不知道任何其他解决方案。
评论