correct = input("Is this correct audio?")
if input = "yes":
stream.stop_stream()
eclipse告诉我:
是预期的,但我不明白为什么它说
答案 0 :(得分:2)
这里有三个问题:
==
来比较值,而不是=
。在Python中,=
仅用于赋值语句,而不用于比较表达式。if
行下面的块。correct
,而不是input
。 input
是一个函数,没有函数等于字符串"yes"
。但correct
是您从调用该函数返回的字符串,而将等于字符串"yes"
(当然,只要用户输入的内容就是这样) 你得到的错误来自第一个错误。
if
条件 - 关键字if
和:
之间的部分 - 必须是表达式。但input = "yes"
不是表达;这是一个声明。那是一个错误。但是eclipse正试图猜测你的真正含义。 input = "yes"
可能不是表达式,但input
本身就是,所以它猜测你的意思是if input:
。它猜错了,但嘿,有点尝试,对吧?
如果您修复SyntaxError
,接下来会得到一个IndentationError
,这很明显可以理解并修复。
如果你解决了这个问题,那么最后一个就很难调试。没有错误,只是比较总是假的,无论你键入什么。在注意到像这样的简单错误之前,你可以让自己疯狂地试图弄清楚你是否需要剥离换行或者你忽略了一些其他奇怪的事情......
所以:
correct = input("Is this correct audio?")
if correct == "yes":
stream.stop_stream()