产品聊天机器人v2

时间:2020-05-13 10:39:21

标签: python list chatbot

我正在尝试创建一个聊天机器人,该机器人在列出价格点和暂停行程范围内的产品之前,先询问某个价格点和暂停行程范围。但是我不确定该怎么做。

product = input("product")
price = input(f'do you have a specific price point for {product}s ')
travel = range(160,180)
price = int(price)
prices = {
    "rockymountianslayer" : 1000,
    "norcostorm" : 3000,
    "yetisb165" : 70,
    "instinct_powerplay" : 13000,
    "helkeler" : 2222
}
travels = {
    "rockymountianslayer" : 180,
    "norcostorm" : 100,
    "yetisb165" : 165
}
mountainbikes = ["rockymountianslayer", "norcostorm", "yetisb165", ]
output = []
for i in mountainbikes:
  if prices[i] < price:
    if travels[i] = travel:
    output.append(i)
print(output)

我相信这是问题所在。

output = []
for i in mountainbikes:
  if prices[i] < price:
    if travels[i] = travel:
    output.append(i)
print(output)

1 个答案:

答案 0 :(得分:0)

Python仅将ItemsPresenter运算符用于分配,而不用于比较。因此,要将变量与值进行比较,您应该编写=,而不仅仅是使用if travels[i] == travel:。但是,在这种情况下,=不是值,它是travel对象,因此您的比较实际上应该是range,以检查if travels[i] in travel:中的值是否在范围。

顺便说一句,您应该尝试根据PEP-8在4个空格上标准化缩进。您已在代码的不同部分中同时使用了4个空格和2个空格,这可能使得更难立即发现travels[i]缩进不正确。

经过更新以考虑到上述情况,代码应类似于:

output.append(i)

另外,您可以将两个output = [] for i in mountainbikes: if prices[i] < price: if travels[i] in travel: output.append(i) print(output) 语句组合在一起:
if,最后,您可以使用Python列表理解来构建新列表,从而简化代码在一个语句中:

if prices[i] < price and travels[i] in travel: