python识别用户输入是肯定还是否定

时间:2019-03-20 11:48:47

标签: python python-3.x

我写了一个python代码,它将用户输入并转换为大写以匹配我的肯定列表和否定列表。但它没有适当考虑负面清单。我似乎没有给出条件性陈述,这是错误的。我尝试了两个代码,但是没有用。另外,我尝试使用len(words)总结了多少正面反馈和负面反馈,但根本没有用。

 - **code1:**

keyword_list = ['GOOD', 'ADMIRE', 'SUPER', 'BEST', "INCREDIBLE", 'NOT BAD', 'NOT SO BAD', 'KEEP IT UP']
print("Enter your feedback")
user_review = input().upper()
if set(keyword_list).intersection(user_review.split()):
  print ("POSTIVE FEEDBACK")
else:
  print("NEGATIVE FEEDBACK")


- **code2:**

negative_words = ['BAD', 'TERRIBLE','NOT GOOD']
positive_words = ['GOOD', 'ADMIRE', 'SUPER', 'BEST', "INCREDIBLE"]
print("Enter your honest review")
user_review = input().upper()
for review in user_review:
    # split the tweet into words:
    words = review.split()

if set(positive_words).intersection(user_review.split()):
  print ("POSTIVE REVIEW")
elif set(negative_words).intersection(user_review.split()):
  print ("NEGATIVE REVIEW")
else:
  print("MODERATE REVIEW")

1 个答案:

答案 0 :(得分:0)

您是否尝试过调试?

set(keyword_list).intersection(['NOT', 'BAD'])

这是您的结果

set(keyword_list).intersection(user_review.split())

NOT BAD作为输入。

这将返回一个包含空白列表的集合:set([])

那是因为'NOT'和'BAD'不是集合的元素。 NOT BAD是。如果将两个单词元素分开,将无法使用。

无论如何,您可以通过这种方式实现目标

negative_words = ['BAD', 'TERRIBLE','NOT GOOD']
positive_words = ['GOOD', 'ADMIRE', 'SUPER', 'BEST', "INCREDIBLE"]
user_review = input("Enter your honest review").upper()
if user_review in positive_words:
    print("POSITIVE REVIEW")
elif user_review in negative_words:
    print("NEGATIVE REVIEW")