Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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 range()函数未生成预期结果_Python_Algorithm_For Loop_Range_Increment - Fatal编程技术网

Python range()函数未生成预期结果

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

如果这个问题看起来很基本,我很抱歉。这是我学习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部分是从哪里来的呢?我很迷茫

请帮忙

如果你认为我懒惰而不想回答,请不要回答;我不需要再被告知我有多懒,因为我不明白自己做错了什么


提前感谢。

您期望的范围函数值有点缺陷。有三种可能的方法可以使用范围功能:

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到底做了什么。答案很可靠。为了完整起见,。这起作用了,我终于明白了!非常感谢你@萨拉瓦纳库马索利德回答。为了完整起见,。这起作用了,我终于明白了!非常感谢你@萨拉瓦纳库马尔