相关疑难解决方法(0)

Python 3.6中的f-strings

我真的很想深入研究代码风格,从现在开始知道从现在开始使用新风格会更好.

.format()在我的Python 3.5项目中使用了很多,并且我担心在下一个Python版本中它会被弃用,因为这种新的字符串文字.

>>> name = "Test"
>>> f"My app name is {name}."
'My app name is Test.'
Run Code Online (Sandbox Code Playgroud)

格式化的字符串功能是否完全取代旧的format()

我理解它基于这样的想法:

简单比复杂更好.

但是,性能问题如何,它们之间是否存在差异?或者它只是一个简单的相同功能的外观?

python python-3.x python-3.6 f-string

34
推荐指数
3
解决办法
2万
查看次数

什么是os.linesep?

Python的os模块包含一个特定于平台的行分隔字符串的值,但是文档明确表示在写入文件时不使用它:

在编写以文本模式打开的文件时,不要将os.linesep用作行终止符(默认值); 在所有平台上使用单个'\n'代替.

文件

以前的问题探讨了为什么你不应该在这种情况下使用它,但那么它有什么用处呢?什么时候应该使用行分隔符,为什么?

python file-io platform-independent separator

24
推荐指数
2
解决办法
2万
查看次数

给字符错误的f字符串?

我在这里收到了我的Atom阅读器的错误消息,其中建议第一个print.(f"message")是发送错误:

File "/Users/permanentmajority/Desktop/Coding/learnpythonbook.py", line 75
    print(f"Let's talk about {my_name}.")
                                       ^
SyntaxError: invalid syntax
[Finished in 0.077s]
Run Code Online (Sandbox Code Playgroud)

码:

my_name = 'Zed A. Shaw'
my_age = 35 # not a lie
my_height = 74 # inches
my_weight = 180 #lbs
my_eyes = 'Blue'
my_teeth = 'White'
my_hair = 'Brown'

print(f"Let's talk about {my_name}.")
print(f"He's {my_height} inches tall.")
print(f"He's {my_weight} pounds heavy.")
print("Actually that's not too heavy.")
print(f"He's got {my_eyes} eyes and {my_hair} hair.")
print(f"His teeth are usually {my_teeth} depending on …
Run Code Online (Sandbox Code Playgroud)

python syntax-error python-2.x f-string

10
推荐指数
3
解决办法
2万
查看次数

为什么在python f-strings中使用双花括号而不是反斜杠?

我们通常使用反斜杠来转义非法字符。

例如,转义双引号。

>>> "\"" == '"'
True
Run Code Online (Sandbox Code Playgroud)

在 f 字符串中,花括号用于占位。为了表示花括号,花括号被加倍。

例如,

>>> f"{{}}" == "{}"
True
Run Code Online (Sandbox Code Playgroud)

为什么在开发 f 弦时不喜欢这种直观的方法?有什么技术或设计原因吗?

>>> f'\{\}'
  File "<stdin>", line 1
SyntaxError: f-string expression part cannot include a backslash
Run Code Online (Sandbox Code Playgroud)

python string-formatting python-internals

5
推荐指数
1
解决办法
561
查看次数

如何将反斜杠转义序列放入 f-string

我想写一些简单的东西

"{}MESSAGE{}".format("\t"*15, "\t"*15)
Run Code Online (Sandbox Code Playgroud)

使用

f"{'\t'*15}MESSAGE{'\t'*15}" # This is incorrect
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

"{}MESSAGE{}".format("\t"*15, "\t"*15)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python string f-string

5
推荐指数
2
解决办法
570
查看次数

SyntaxError: f-string 表达式部分不能包含反斜杠

我有这个api调用。

payload = "{\\"weight\\":{\\"value\\":\\"85.00\\",\\"unit\":\\"kg\\"},\\"height\\":{\\"value\\":\\"170.00\\",\\"unit\\":\\"cm\\"},\\"sex\\":\\"m\\",\\"age\\":\\"24\\",\\"waist\\":\\"34.00\\",\\"hip\\":\\"40.00\\"}"
Run Code Online (Sandbox Code Playgroud)

我想使用 af 字符串来更改这些值,但出现语法错误,提示我不能对 f 字符串使用反斜杠。我能做什么?

python django

4
推荐指数
1
解决办法
3752
查看次数

为什么不能在f字符串中使用反斜杠?

在Python> = 3.6中,f-strings可以用作方法的替代品str.format.举个简单的例子,它们是等价的:

'{} {}'.format(2+2, "hey")
f'{2+2} {"hey"}'
Run Code Online (Sandbox Code Playgroud)

忽略格式说明符,我基本上可以str.format在f字符串中移动内部大括号的位置参数.请特别注意,我可以将str文字放在这里,虽然看起来有点笨拙.

但是有一些限制.具体来说,任何形状或形式的反斜杠都不允许在f字符串的大括号内:

'{}'.format("new\nline")  # legal
f'{"new\nline"}'          # illegal
f'{"\\"}'                 # illegal
Run Code Online (Sandbox Code Playgroud)

\如果它在支架内,我甚至不能用它来分开一条长线;

f'{2+\
2}'     # illegal
Run Code Online (Sandbox Code Playgroud)

即使\在正常情况下完全允许这种用法str;

'{\
}'.format(2+2)  # legal
Run Code Online (Sandbox Code Playgroud)

在我看来,如果它\在f字符串的大括号内完全看到字符,则会将硬停止编码到解析器中.为什么要实施此限制?虽然文档指定了这种行为,但它并不能证明原因.

python string-formatting backslash python-3.x f-string

3
推荐指数
3
解决办法
1255
查看次数

Python - 写入TXT中每行的开头和结尾

我目前正在寻找一种方法来编写Python中TXT文件的每一行的开头和结尾.例如,

目前的TXT文件:

Jimmy
Was
Here
Run Code Online (Sandbox Code Playgroud)

将第一个值写入每行的开头

111Jimmy
111Was
111Here
Run Code Online (Sandbox Code Playgroud)

将第二个值写入每行的末尾

111Jimmy222
111Was222
111Here222
Run Code Online (Sandbox Code Playgroud)

似乎无法在Google上找到任何描述如何正确完成此操作的内容.我已经找到了写入特定行的方法,但并不是所有这些都以这种方式写入.任何帮助表示赞赏!谢谢!

python text text-files readlines

2
推荐指数
2
解决办法
1万
查看次数

Python3 - 在 f 字符串中用 \n 分隔的打印列表

我想在 python3 的 f 字符串中打印一条消息,其中包含一个由 \n 分隔的列表。

my_list = ["Item1", "Item2", "Item3"]
print(f"Your list contains the following items:\n\n{my_list}")
Run Code Online (Sandbox Code Playgroud)

期望的输出:

# Your list contains the following items:
#    Item1
#    Item2
#    Item3
Run Code Online (Sandbox Code Playgroud)

python python-3.x f-string

1
推荐指数
1
解决办法
537
查看次数