我正在尝试创建一个聊天机器人,该机器人在列出价格点和暂停行程范围内的产品之前,先询问某个价格点和暂停行程范围。但是我不确定该怎么做。
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)
答案 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: