对于这个代码,我试着找出这个单词是否重复,它会说单词是"不是唯一的"如果单词不重复,它会说单词是" 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()
答案 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
,而不是False
和true
。
现在错误应该消失了,但我会把剩下的留给你。我不确定代码是否会正确解决您的问题。
但是你需要学习基础知识。在开始学习字典之类的数据结构之前,你应该非常善于使用变量,for循环和if语句,这个问题证明你不是。请了解这些事情。