【问题标题】:F-String Literal Not Printing kwargsF 字符串文字不打印 kwargs
【发布时间】:2023-02-24 15:44:38
【问题描述】:
def myfunc (*args, **kwargs):
    print (args)
    print (kwargs)
    print (f'I would like {args[0]} {kwargs['food']}')
    #Example #2 print ('I would like {} {}'.format(args[0], kwargs['food']))

myfunc(10,20,30,fruit = 'orange', food = 'eggs', animal = 'dog')

当我执行上面的代码时,我收到一条错误消息:

SyntaxError: f-string: 不匹配的 '['

但是,当我改为执行“Example #2”时,我得到了正确的输出:

我想要10个鸡蛋

使用 f 字符串文字时我的语法有什么问题?

【问题讨论】:

    标签: python-3.x f-string


    【解决方案1】:

    不要在字符串本身的字符串周围使用相同的引号。您正在提前终止字符串。

    使用 "food" 而不是 'food' 或使用三重单引号或双引号,例如:

    print (f'''I would like {args[0]} {kwargs['food']}''')
    

    【讨论】:

    • 稍微扩展一下这个答案:您还可以在外部 f 字符串 f"I would like {args[0]} {kwargs['food']}" 上使用双引号
    【解决方案2】:

    " 当您在 f 字符串中使用单引号时,您需要将其用双引号引起来。 在您的示例中,您需要按如下方式替换。

        print (f'I would like {args[0]} {kwargs['food']}')
    
        #replace with
    
        print (f"I would like {args[0]} {kwargs['food']}")
    
    
    
    
    
    
    
       
    

    【讨论】:

    • 这与现有答案基本相同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多