Python range()函数未生成预期结果
如果这个问题看起来很基本,我很抱歉。这是我学习Python的第一个学期,我只是想了解我做错了什么。人们已经说我懒惰,因为我不理解这个概念,但我没有,我没有其他人可以问,我只是想学习 我有一个计划:Python range()函数未生成预期结果,python,algorithm,for-loop,range,increment,Python,Algorithm,For Loop,Range,Increment,如果这个问题看起来很基本,我很抱歉。这是我学习Python的第一个学期,我只是想了解我做错了什么。人们已经说我懒惰,因为我不理解这个概念,但我没有,我没有其他人可以问,我只是想学习 我有一个计划: def num4(): def tp(nums): res = [] for i in range(len(nums)): for j in range(i+1,len(nums)): res.appe
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部分是从哪里来的呢?我很迷茫
请帮忙
如果你认为我懒惰而不想回答,请不要回答;我不需要再被告知我有多懒,因为我不明白自己做错了什么
提前感谢。您期望的范围函数值有点缺陷。有三种可能的方法可以使用范围功能: rangex:生成一个值为0~x-1的数组。所以范围4=[0,1,2,3] rangex,y:从x~y-1生成值。所以范围1,4=[1,2,3] rangex,y,z:以z为步长从x~y-1生成值。所以范围1,10,2=[1,3,5,7,9]
使用这些范围值浏览您的代码,这对您来说是有意义的。您期望从范围函数得到的值有点缺陷。有三种可能的方法可以使用范围功能: rangex:生成一个值为0~x-1的数组。所以范围4=[0,1,2,3] rangex,y:从x~y-1生成值。所以范围1,4=[1,2,3] rangex,y,z:以z为步长从x~y-1生成值。所以范围1,10,2=[1,3,5,7,9]
使用这些范围值浏览代码,您会发现它对您有意义。range4=1、2、3、4-请在解释器中尝试listrange4,以了解range4的真正作用。range4=1,2,3,4-在解释器中尝试listrange4,看看range4到底做了什么。答案很可靠。为了完整起见,。这起作用了,我终于明白了!非常感谢你@萨拉瓦纳库马索利德回答。为了完整起见,。这起作用了,我终于明白了!非常感谢你@萨拉瓦纳库马尔