在python中访问kwargs时,打印格式、速记不起作用
我注意到,若要在python中打印specefic键的kwargs,当我将关键字放在print语句前面时,会出现一个错误,如下所示在python中访问kwargs时,打印格式、速记不起作用,python,Python,我注意到,若要在python中打印specefic键的kwargs,当我将关键字放在print语句前面时,会出现一个错误,如下所示 def myfunc(*args, **kwargs): ''' sut min dodo funktionen''' print(f'i would like {args[0]} and {kwargs['food']}') #gives error print('I would like {} and {}'.format(args[0], kwargs['do
def myfunc(*args, **kwargs):
''' sut min dodo funktionen'''
print(f'i would like {args[0]} and {kwargs['food']}') #gives error
print('I would like {} and {}'.format(args[0], kwargs['dodo'])) #works fine
我得到的错误如下
File "<ipython-input-49-5f229585e335>", line 3
print(f'i would like {args[0]} and {kwargs['food']}')
^
SyntaxError: invalid syntax
文件“”,第3行
打印(f'i想要{args[0]}和{kwargs['food']})
^
SyntaxError:无效语法
为什么第二个可以正常工作,但第一个不能工作,即使逻辑基本相同,只是语法和操作不同?那么,
f'{a['b']}'
语法有效吗?如何解析这个表达式?这是一个单引号字符串吗
不,不是。它被解析为:
f'{a[' # f-string
b # what's this?
']}' # regular string
正如您所看到的,这个b
实际上不是字符串的一部分,因为一对匹配的单引号表示字符串。它可以被视为变量名,但Python的语法不允许这样做。同样的问题可以通过一个简单的例子来说明:
'I'm a string, y'all!'
它的解析如下:
'I' # a string
m a string, y # ??!!
'all!' # a string
您可以使用不同的引号:
print(f'i would like {args[0]} and {kwargs["food"]}')
那么,
f'{a['b']}'
的语法有效吗?如何解析这个表达式?这是一个单引号字符串吗
不,不是。它被解析为:
f'{a[' # f-string
b # what's this?
']}' # regular string
正如您所看到的,这个b
实际上不是字符串的一部分,因为一对匹配的单引号表示字符串。它可以被视为变量名,但Python的语法不允许这样做。同样的问题可以通过一个简单的例子来说明:
'I'm a string, y'all!'
它的解析如下:
'I' # a string
m a string, y # ??!!
'all!' # a string
您可以使用不同的引号:
print(f'i would like {args[0]} and {kwargs["food"]}')
print(我想要{args[0]}和{kwargs['food']})
这里printf
需要一个字符串,但是'i想要{args[0]}和{kwargs['food']}'
不是字符串-它是两个字符串,夹着一个未知标识符(food
)
'我想要{args[0]}和{kwargs['
+食物
+']}
请尝试以下方法:
print(f“我想要{args[0]}和{kwargs['food']}”)
打印(我想要{args[0]}和{kwargs['food']})
这里printf
需要一个字符串,但是'i想要{args[0]}和{kwargs['food']}'
不是字符串-它是两个字符串,夹着一个未知标识符(food
)
'我想要{args[0]}和{kwargs['
+食物
+']}
请尝试以下方法:
print(f“我想要{args[0]}和{kwargs['food']}”)
为什么在第二个print语句中有一个f?这些是在python 3.6Thanks中引入的,我在python@Valentino是的,非常感谢您详细解释为什么在第二个print语句中有一个f?这些都是在python3.6Thanks中介绍的,我在python@Valentino是的,非常感谢您的详细说明