Два цикла с одной и той же переменной, но разным диапазоном - PullRequest
0 голосов
/ 24 августа 2018

Я хочу создать программу, которая печатает n разделов и x_1, x_2, ..., x_n подразделов для каждого раздела в LaTeX. Под этим я подразумеваю, что я назвал переменную numsec, которая спрашивает меня, сколько разделов я хочу, достаточно просто. Затем после переменной numsubsec спрашивает, сколько подразделов я хочу. Теперь ответ на этот вход должен быть таким: скажем, я хочу 3 раздела, мой ответ на подраздел должен состоять из 3-значного числа, чтобы первая цифра определяла, сколько подразделов должно быть в первом разделе и так далее. Например, numsec может быть 3, а numsubsec может быть 101. Это означает, что 1 секунда в 1 секунду, 0 секунд в 2 секунды, 1 секунда в 3 секунды. Тем не менее, я не знаю, как заставить 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()

EDIT: Я решил проблему, используя циклы 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("")

1 Ответ

0 голосов
/ 25 августа 2018

Эту проблему можно решить, используя два цикла 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("")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...