【问题标题】:Adding line breaks to a Python string that will be assigned to a variable rather than "print()"将换行符添加到将分配给变量而不是“print()”的 Python 字符串
【发布时间】:2017-11-17 17:04:32
【问题描述】:

我正在编写一个购物清单脚本,该脚本会将用户输入的食品输入字典。然后,该脚本将这些项目转换为字符串,格式化字符串以提高可读性,然后通过 Twilio API 向其他用户发送 SMS。

一切似乎都运行良好,除了字符串在同一行显示每个项目。我已经搜索了我的具体问题,虽然我看到了其他关于将字符串上的每个元素打印到新行的问题,但是当我将字符串分配给变量时,该解决方案不起作用,我需要做才能使 Twilio 按预期工作。我仍然认为自己对 Python 很陌生,所以如果有人能够提供帮助,将不胜感激!

这是源代码('if select == 2' 部分已被注释掉,因为这不是我目前关注的焦点。请忽略它):

Shoplist = {} #sets the initial empty dictionary
...
food, quantity = input("Enter the food followed by a space and the 
quantity, or type 'q q' to quit").split(); quantity
Listadd = {food: quantity} #adds the food and quantity of the food into 
a holding dictionary, Listadd
Shoplist.update(Listadd) #updates Shoplist dictionary
 for k, v in Shoplist.items(): #Concatenates dictionary into strings 
for ease of reading
    print(str(k) + ', ' + str(v)) #Shows user an updated shopping 
list
...
        Shoplist = str(Shoplist).replace("
{","").replace("}","").replace(":",",").replace("\'","")
        print(Shoplist) 

【问题讨论】:

  • 你的问题有点不清楚。为什么不将换行符添加到字符串中?另外,请构造一个minimal reproducible example(重点放在minimal),因为我怀疑你需要超过30行来证明你的问题。
  • 任何向我的字符串添加新行的方法都不起作用并返回各种错误,因为我们正在将用户输入的项目添加到字典中,然后将该字典转换为字符串。我知道如何换行,当您简单地打印带有中断的字符串时,我的代码可以工作,但是当我将它分配给变量时它不再工作。
  • “没有工作”和“返回各种错误”不是我们为您提供帮助的足够精确的错误描述。 什么不起作用? 如何不起作用?你的代码有什么问题?您收到错误消息吗?错误信息是什么?你得到的结果不是你期望的结果吗?你期望什么结果,为什么,你得到的结果是什么,两者有什么不同?您正在观察的行为不是期望的行为吗?期望的行为是什么,为什么,观察到的行为是什么,它们有何不同?
  • 就像我说的,我对这一切都是新手,所以我感谢您的指导和对我的耐心。具体来说,我一直在尝试将“\n”换行符添加到转换后的字符串本身。我相信这行特别是问题: Shoplist = str(Shoplist).replace("{","").replace("}","").replace(":",",").replace(" \'","") 如果我使用 print() 而不是将 str 分配给变量 Shoplist,则 '\n' 用于换行。我不确定如何在我上面发布的串联中使用 \n,因为任何尝试都会导致字符 \n 被逐字打印。

标签: string python-3.x dictionary


【解决方案1】:

来自 Twilio documentation

对于通过 REST API 发送出站 SMS 消息,最好 将新行编码为 %0a。

他们的例子是:

Here+is+my+first+line%0aHere+is+my+second+line

听起来您的错误在于格式化字符串以提高可读性。您需要将其格式化为 API 的规范。

【讨论】:

  • 是的,这正是我的问题。非常感谢您的帮助!
猜你喜欢
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
相关资源
最近更新 更多