如果这个问题看起来很基本,我很抱歉。我对此非常陌生(这是我的第一个学期用Python),我只是想了解我做错了什么。人们已经打电话给我"懒惰"因为不理解这个概念,但是我没有,我没有其他人要问,我只是想学习。
我有一个程序:
def num4():
def tp(nums):
res = []
for i in range(len(nums)):
for j in range(i+1,len(nums)):
res.append(nums[i] + nums[j])
return res
nums = [ 1, 5, 7, -2 ]
print(tp(nums)
我完成了它的工作,标记了它,并期望它产生这个结果:
def tp(nums):
res = []
for i in range(len(nums)):
# startvalue = len(nums), stopvalue = 0, inc = 1
for j in range(i+1,len(nums)):
# startvalue = i + 1, stopvalue = len(nums) - 1, inc = 1
res.append(nums[i] + nums[j])
return res
nums = [ 1, 5, 7, -2 ]
print(tp(nums))
for i in range(4):
# range(4) = 1, 2, 3, 4
i = 1:
for j in range(i + 1, 4):
# range(1 + 1, 4) = 2, 3
res = [nums[1] + nums[2]] = 5 + 7 = 12
res = [nums[1] + nums[3]] = 5 - 2 = 3
i = 2:
for j in range(i + 1, 4):
# range(2+1, 4) = 3
res = [nums[2] + nums[3]] = 7 - 2 = 5
i = 3:
for j in range(i + 1, 4):
# range(3+1, 4) = n/a
res = [nums[3] + n/a] = -2
i = 4
for j in range(i + 1, 4):
# range(4+1, 4) = n/a
res = [nums[4] + n/a] = 1
预测输出:res = [12,3,5,-2,1]
相反,当我在Python交互式会话中执行此操作时:
from ExamCheck1 import num4
num4()
它产生了这个输出:
[6, 8, -1, 12, 3, 5]
我得到12, 3, 5
权利,6, 8, -1
部分来自何处?我非常迷茫和困惑。
请帮忙。
如果你不想回答,因为你觉得我很懒,请不要回答;我不需要(再次)告诉我,因为我不理解我做错了什么是多么懒惰。
提前致谢。
答案 0 :(得分:4)
您对范围函数的期望值有点缺陷。有三种方法可以使用范围功能:
使用这些范围值来浏览您的代码,这对您来说很有意义。