我有两个变量,总共存储两个数字。 我想将这些数字组合在一起,并用逗号分隔。我读到可以使用{variablename:+}插入加号或空格或零,但逗号不起作用。
x = 42
y = 73
print(f'the number is {x:}{y:,}')
这是我的怪异解决方案,我先添加+,然后用逗号替换+。还有更直接的方法吗?
x = 42
y = 73
print(f'the number is {x:}{y:+}'.replace("+", ","))
说我有名字和域名,我想建立一个电子邮件地址列表。因此,我想将两个名称在Middel中的@符号和结尾的.com融合。
那只是我能想到的一个例子。
x = "John"
y = "gmail"
z = ".com"
print(f'the email is {x}{y:+}{z}'.replace(",", "@"))
导致:
print(f'the email is {x}{y:+}{z}'.replace(",", "@"))
ValueError: Sign not allowed in string format specifier
答案 0 :(得分:5)
您使事情变得过于复杂。
由于仅对{
和}
之间的内容进行评估,因此您可以简单地进行
print(f'the number is {x},{y}')
(第一个示例),
print(f'the email is {x}@{y}{z}')
秒。
答案 1 :(得分:3)
当您将某些内容放入f格式的“ {}” 中时,它实际上正在被评估。因此,所有不应放在“ {}”之外的内容。 一些例子:
x = 42
y = 73
print(f'Numbers are: {x}, {y}') # will print: 'Numbers are: 42, 73'
print(f'Sum of numbers: {x+y}') # will print: 'Sum of numbers: 115'
您甚至可以执行以下操作:
def compose_email(user_name, domain):
return f'{user_name}@{domain}'
user_name = 'user'
domain = 'gmail.com'
print(f'email is: {compose_email(user_name, domain)}')
>>email is: user@gmail.com
有关更多示例,请参见: Nested f-strings