Python 3,改变for循环的范围

时间:2017-09-27 19:31:59

标签: python-3.x for-loop range

我正在尝试使用for for for循环,其中内部循环与外部循环中的i具有相同的范围。这基本上就是我想要的,但(显然)它不起作用:

   1:: RunMSWordMacro("correct")

    RunMSWordMacro(name)  {
       GetWord().Run(name)
    }

    GetWord()  {
       if !hwnd := WinActive("ahk_class OpusApp")
          hwnd := WinExist("ahk_class OpusApp")
       ControlGet, ControlHwnd, Hwnd,, _WwG1, ahk_id %hwnd%
       Return AccObjectFromWindow(ControlHwnd, -16).Application
    }

    AccObjectFromWindow(hWnd, idObject = 0)
    {
       static IID_IDispatch   := "{00020400-0000-0000-C000-000000000046}"
            , IID_IAccessible := "{618736e0-3c3d-11cf-810c-00aa00389b71}"
            , OBJID_NATIVEOM := 0xFFFFFFF0, VT_DISPATCH := 9, h := DllCall("LoadLibrary", Str, "oleacc", Ptr)

       VarSetCapacity(IID, 16), idObject &= 0xFFFFFFFF
       DllCall("ole32\CLSIDFromString", Str, idObject = OBJID_NATIVEOM ? IID_IDispatch : IID_IAccessible, Ptr, &IID)
       if DllCall("oleacc\AccessibleObjectFromWindow", Ptr, hWnd, UInt, idObject, Ptr, &IID, PtrP, pAcc) = 0
          Return ComObjEnwrap(VT_DISPATCH, pAcc, 1)
    }

所以我想要发生的是,获得5个循环,其中第一个循环给出1个结果,第二个循环给出2个结果,等等。我不知道是否需要更多的澄清,但我试图在python中创建喝酒游戏的公共汽车,我需要这个循环金字塔轮。这样可能还是需要找到一种不同的方法来解决这个问题?提前谢谢。

修改

我正在寻找的结果是通过使用以下代码实现的:

num = 1
totalrow = range(5)
rownum = range(num)

for i in totalrow:
    for x in rownum:
        do stuff
        num = num + 1
        print (stuff)

这给了我生成的牌组中的15张牌。我希望有一个双循环,所以我可以分辨出每一排卡片之间的区别。现在我对输出不感兴趣,但是对于任何人来说,在答案中,smarx显示了几种打印结果的好方法。

2 个答案:

答案 0 :(得分:2)

在进入外部$trip->getTripAddOns->add($tripAddOn) 循环之前,您只计算rownum一次 - 但实际上在每次迭代期间您需要for为不同的值。这意味着你需要计算一个新范围 in 循环。

做这样的事情:

rownum

这将以您要求的模式循环。

答案 1 :(得分:2)

for i in range(5):
    for j in range(i):
        print(j)

修改

考虑到你试图复制的游戏,你可能需要这样的东西:

for i in range(4):
    for j in range(i + 1):
        print(j, end=' ')
    print()

# Output:
# 0
# 0 1
# 0 1 2
# 0 1 2 3

编辑2

或许这个:

for i in range(4):
    print(' ' * i, end='')
    for j in range(4 - i):
        print(j, end=' ')
    print()

# Output:
# 0 1 2 3 
#  0 1 2 
#   0 1 
#    0