在 python 中,如何将不带引号的字符串附加到带有单引号的字符串旁边?

In python, how to append a string without quotation marks next to a string with the single quotation marks?

url = https://www.amazon.com//Best-Sellers-Amazon-Launchpad/zgbs/boost/ref=zg_bs_pg_{pageNo}?_encoding=UTF8&pg={pageNo}

def getData(url):
    new_link = 'f'+ str(url)


###rest of the code

上面的编码给出了以下输出:

'fhttps://www.amazon.com//Best-Sellers-Amazon-Launchpad/zgbs/boost/ref=zg_bs_pg_{pageNo}?_encoding=UTF8&pg={pageNo}'

但是,字母 f 应该在 url 周围的引号之外。也就是说,我正在寻找以下内容:

f'https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/ref=zg_bs_pg_{pageNo}?_encoding=UTF8&pg={pageNo}'

我想你希望 ro 做这样的事情:

pageNo = 123
url = f'https://www.amazon.com//Best-Sellers-Amazon-Launchpad/zgbs/boost/ref=zg_bs_pg_{pageNo}?_encoding=UTF8&pg={pageNo}'
print(url)

打印:

https://www.amazon.com//Best-Sellers-Amazon-Launchpad/zgbs/boost/ref=zg_bs_pg_123?_encoding=UTF8&pg=123

有关 Python 格式字符串的更多信息,请参阅 https://realpython.com/python-f-strings/

什么, but in addition, take a look at the format方法。

Formatted string literals in Python 是前缀为 fF 的字符串,其内容具有特殊的语义。 f 不是字符串中的字符;您可以将其视为后面字符串的修饰符。您不能通过简单地将 f 字符与某个字符串连接来构造这样的文字。

有多种方法可以实现您的目标。第一个(正如其他答案所暗示的那样)使用更简单的方法。但是,如果您坚持分离 URL 并动态生成和使用格式化字符串文字,请参阅第二个。第三个使用格式字符串(与第二个中的 url 相同)。

  1. 直接使用格式化字符串文字:

    def getData(pageNo):
      new_link = f'https://www.amazon.com/Best-Sellers-Amazon-Launchpad/zgbs/boost/ref=zg_bs_pg_{pageNo}?_encoding=UTF8&pg={pageNo}'
      # rest of the code
    
  2. 使用eval:

    url = 'https://www.amazon.com/Best-Sellers-Amazon-Launchpad/zgbs/boost/ref=zg_bs_pg_{pageNo}?_encoding=UTF8&pg={pageNo}'
    
    def getData(url, pageNo):
       new_link = eval("f'"+ url + "'"))
       # rest of the code
    
  3. 使用.format:

    url = 'https://www.amazon.com/Best-Sellers-Amazon-Launchpad/zgbs/boost/ref=zg_bs_pg_{pageNo}?_encoding=UTF8&pg={pageNo}'
    
    def getData(url, pageNo):
       new_link = url.format(pageNo=pageNo)
       # rest of the code