在 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 是前缀为 f
或 F
的字符串,其内容具有特殊的语义。 f
不是字符串中的字符;您可以将其视为后面字符串的修饰符。您不能通过简单地将 f
字符与某个字符串连接来构造这样的文字。
有多种方法可以实现您的目标。第一个(正如其他答案所暗示的那样)使用更简单的方法。但是,如果您坚持分离 URL 并动态生成和使用格式化字符串文字,请参阅第二个。第三个使用格式字符串(与第二个中的 url
相同)。
直接使用格式化字符串文字:
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
使用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
使用.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
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/
什么
Formatted string literals in Python 是前缀为 f
或 F
的字符串,其内容具有特殊的语义。 f
不是字符串中的字符;您可以将其视为后面字符串的修饰符。您不能通过简单地将 f
字符与某个字符串连接来构造这样的文字。
有多种方法可以实现您的目标。第一个(正如其他答案所暗示的那样)使用更简单的方法。但是,如果您坚持分离 URL 并动态生成和使用格式化字符串文字,请参阅第二个。第三个使用格式字符串(与第二个中的 url
相同)。
直接使用格式化字符串文字:
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
使用
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
使用
.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