首页 > 解决方案 > 具有相同变量但范围不同的两个循环

问题描述

我想制作一个程序,为 LaTeX 中的每个部分打印n 个部分和x_1、x_2、...、x_n小节。我的意思是我命名了一个变量 numsec,它问我想要多少个部分,很简单。然后,一个变量 numsubsec 询问我想要多少个小节。现在该输入的答案应该是这样的:假设我想要 3 个部分,我对子部分的答案必须是 3 位数字,以便第一个数字决定第一部分应该有多少个子部分,依此类推。例如,numsec 可以是 3,numsubsec 可以是 101。这意味着第 1 秒为 1 子秒,第 2 秒为 0 子秒,第 3 秒为 1 子秒。但是,我不知道如何让 Python 打印出准确的答案。这是我的代码:

def sections(numsec, numsubsec):
    for n, i in range(1, numsec+1), range(0,len(numsubsec)):
        print("")
        print("\section{Opgave "+str(n)+"}")
        print("")
        print("\subsection{}" * int(numsubsec[i]))



def runprogram():
    numsec = int(input("How many sections? "))
    numsubsec = input("How many subsections? ")
    sections(numsec,numsubsec)

runprogram()

编辑: 我通过同时使用 to for 循环和两个变量来解决这个问题:

def sections(numsec, numsubsec):
    numbers = []
    numbers.extend(numsubsec) #Splitting the string numsubsec in to a list of its digits
    print("")
    print("Preamble")
    print("")
    for n,i in zip(range(1, numsec+1),range(0,numsec)): #zip the ranges
        print("")
        print("\section{Opgave "+str(n)+"}")
        print("")
        for x in range(int(numsubsec[i])):
            print("\subsection{}")
            print("")

标签: pythonfor-loop

解决方案


这可以通过同时使用两个 for 循环并压缩范围来解决:

def sections(numsec, numsubsec):
    numbers = []
    numbers.extend(numsubsec) #Splitting the string numsubsec in to a list of its digits
    print("")
    print("Preamble")
    print("")
    for n,i in zip(range(1, numsec+1),range(0,numsec)): #zip the ranges
        print("")
        print("\section{Opgave "+str(n)+"}")
        print("")
        for x in range(int(numsubsec[i])):
            print("\subsection{}")
            print("")

推荐阅读