【发布时间】: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