Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 麻省理工开放式课程CS实践测试1简介?_Python - Fatal编程技术网

Python 麻省理工开放式课程CS实践测试1简介?

Python 麻省理工开放式课程CS实践测试1简介?,python,Python,下面的代码包含两个语义错误。更正它,以便它读取整数,直到用户输入-1,然后打印整数之和(8点): 我猜您需要用实际列表替换for循环中的getLines()。函数必须返回列表输入 但是在函数的while循环中,如果行==-1:永远不会返回True。为什么 谢谢 我猜您需要将for循环中的“getLines()”替换为实际的列表。函数必须返回列表“输入” 没错 但是在函数的while循环中,“if line==-1:”永远不会返回True。为什么 在交互式解释器上尝试以下操作: >>

下面的代码包含两个语义错误。更正它,以便它读取整数,直到用户输入-1,然后打印整数之和(8点):

我猜您需要用实际列表替换
for循环中的
getLines()
。函数必须返回列表
输入

但是在函数的
while循环中,
如果行==-1:
永远不会返回True。为什么

谢谢

我猜您需要将for循环中的“getLines()”替换为实际的列表。函数必须返回列表“输入”

没错


但是在函数的while循环中,“if line==-1:”永远不会返回True。为什么

在交互式解释器上尝试以下操作:

>>> '-1' == -1
False
除了在非常有限的一组特殊情况下(例如,
int
float
),不同类型的值永远不相等

现在查看返回的内容:

…然后,函数从输入中读取一行,将其转换为字符串(去掉尾随的换行符),并返回该字符串

因此,当您键入
-1
时,
原始输入将返回字符串
'-1'

您可以通过检查字符串
'-1'
而不是数字
-1
来解决此问题。但这就是你想要的吗?如果有人用空格键入,比如说,
-1
,这算是退出吗?如果是这样,您可能需要调用
line.strip()


但是这里实际上还有第三个错误……事实上他们只声明了两个错误,这让我觉得他们希望你一起解决这两个问题

输入将是一个字符串列表。你可以把它们加在一起,但要做的只是把它们连接成一个大字符串,而不是把它们作为数字加起来。因此,实际上,您可能需要将每个字符串转换为整数,例如:

try:
    number = int(line)
except ValueError:
    print 'I said a positive integer, does %s look like an integer?' % (line,)
    continue
如果这样做,前面的问题就会神奇地消失,因为
number==-1
将为真

当然,您还需要了解如何处理用户键入的
0
-32
或其他有效的
int
,但既不是正整数也不是
-1
。难道你不喜欢边缘案例吗

try:
    number = int(line)
except ValueError:
    print 'I said a positive integer, does %s look like an integer?' % (line,)
    continue