我正在尝试编写可以在sentance中检查重复单词的python代码

时间:2018-04-12 11:20:05

标签: python

对于这个代码,我试着找出这个单词是否重复,它会说单词是"不是唯一的"如果单词不重复,它会说单词是" unique"。我运行程序但输入句子后显示错误。

def isUnique():

    words = sentence.split()
    unique = {}
    for i in words:
    if word not in unique:
    count[i] = true
    else:
    unique[i] = false


def main():

    user_input = input("Enter word sperated by space: ")
    uniques = isUnique(user_input)
    print(uniques)

main()

1 个答案:

答案 0 :(得分:0)

您的代码中存在大量导致错误的内容。我建议至少要学习如何在尝试创建函数之前定义和调用函数的基础知识。您还需要了解变量以及如何正确引用它们,以及如何定义布尔值。

这里的问题是在编写代码之前应该阅读的内容。

问题1:缩进

您还没有正确缩进代码。在启动for循环后需要缩进(并且for循环中的所有内容都必须保持缩进。您需要在每个if / elif / else语句后缩进,并且与该语句相关的所有内容必须保持缩进。正确缩进代码看起来像这样:

def safeList(list: List[Int])(index: Int): Int = {
  if (index < list.length) list(index)
  else 0
}

val x = List(1, 2 ,3 )
val y = safeList(x)(_)

val a = y(0) // returns 1
val b = y(1) // returns 2
val c = y(4) // returns 0

问题2:isUnique()

中没有参数

定义函数时,如果需要参数,则需要在创建函数时指定参数。像这样:

def isUnique():

    words = sentence.split()
    unique = {}
    for i in words:
        if word not in unique:
            count[i] = true
        else:
            unique[i] = false


def main():

    user_input = input("Enter word sperated by space: ")
    uniques = isUnique(user_input)
    print(uniques)

main()

此处,当您调用该函数时,def isUnique(sentence): words = sentence.split() unique = {} for i in words: if word not in unique: count[i] = true else: unique[i] = false 将与sentence相同。这样,当计算机在函数内部看到user_input时,它知道sentence是函数中的参数(即用户输入)。您编写它的方式,如果计算机不在函数参数中,计算机应该如何知道sentence是什么?答:它没有。

问题3:循环迭代器

使用sentence循环,您可以调用您在for上重复的每个对象。但是在i循环内部,您将此对象称为for。同样,如果您还没有定义它,计算机怎么能知道word是什么。这是正确的方法:

word

问题4:什么是for word in words: if word not in unique: count[i] = true else: unique[i] = false

同样,在count循环中,您引用了一个名为for的字典,但您还没有定义任何名为count的字典。也许你的意思是:

count

问题5:布尔人以资本开头

Python的布尔值应该是for word in words: if word not in unique: unique[i] = true else: unique[i] = false True,而不是Falsetrue

现在错误应该消失了,但我会把剩下的留给你。我不确定代码是否会正确解决您的问题。

但是你需要学习基础知识。在开始学习字典之类的数据结构之前,你应该非常善于使用变量,for循环和if语句,这个问题证明你不是。请了解这些事情。