списки пусты даже после создания копии после использования цикла for - PullRequest
0 голосов
/ 02 июля 2019

Я использую цикл for для получения значений и сохранения в 3 списках и снова использую цикл for для получения значений. Я сделал копию каждого списка, но при копировании списков копия также пуста.

Я пытался сделать копию списка, но не получилось.

l_Subjects=[]
l_T_Marks=[]
l_Marks=[]
l_T_Marks1=list(l_Marks)
l_Marks1=l_Marks.copy()
l_Subjects1=l_Subjects.copy()
for i in range(num1):
        Subjects=input("\nType subject name:")
        l_Subjects.append(Subjects)
        while True:
            try:
                T_Marks= int(input(f'Enter total marks for {Subjects}:'))
                l_T_Marks.append(T_Marks)
                while True:
                    Marks = int(input('Enter obtained marks:'))
                    if Marks>T_Marks:
                        print('''\n"Please insert correct marks"''')
                    else:
                        l_Marks.append(Marks)
                        break
            except ValueError:
                print('''\n"Please enter only number"''')
            else:
                break
print(" _________________________________________________________________________")
print("|                                                                         |")
print("|                               Subjects                                  |")
print("|_________________________________________________________________________|")
print("|            Component             |                 Marks                |")
print("|__________________________________|______________________________________|")

for i in list(l_Marks):
    print(f"|              {l_Subjects.pop(0)}                   |           {l_Marks.pop(0)}/{l_T_Marks.pop(0)}                           |")
    print(f"|__________________________________|______________________________________|")

print(l_Marks,l_T_Marks,l_Subjects)
print(l_Marks1,l_Subjects1,l_T_Marks1)
Sum_Marks=(sum(l_Marks1))
Sum_T_Marks=(sum(l_T_Marks1))

1 Ответ

0 голосов
/ 02 июля 2019

Код, который вы использовали для копирования списка, используйте этот код после цикла for (когда для цикла вставьте значения в списки, затем сделайте их копию), копирование списков перед циклом for будет пустым, потому что в то время списки empty.i исправил код (приведенный ниже)

    l_Subjects=[]
    l_T_Marks=[]
    l_Marks=[]

    for i in range(num1):
            Subjects=input("\nType subject name:")
            l_Subjects.append(Subjects)
            while True:
                try:
                    T_Marks= int(input(f'Enter total marks for {Subjects}:'))
                    l_T_Marks.append(T_Marks)
                    while True:
                        Marks = int(input('Enter obtained marks:'))
                        if Marks>T_Marks:
                            print('''\n"Please insert correct marks"''')
                        else:
                            l_Marks.append(Marks)
                            break
                except ValueError:
                    print('''\n"Please enter only number"''')
                else:
                    break
    l_T_Marks1=list(l_Marks)
    l_Marks1=l_Marks.copy()
    l_Subjects1=l_Subjects.copy()
    print(" _________________________________________________________________________")
    print("|                                                                         |")
    print("|                               Subjects                                  |")
    print("|_________________________________________________________________________|")
    print("|            Component             |                 Marks                |")
    print("|__________________________________|______________________________________|")



    for i in list(l_Marks):
        print(f"|              {l_Subjects.pop(0)}                   |           {l_Marks.pop(0)}/{l_T_Marks.pop(0)}                           |")
        print(f"|__________________________________|______________________________________|")

    print(l_Marks,l_T_Marks,l_Subjects)
    print(l_Marks1,l_Subjects1,l_T_Marks1)
    Sum_Marks=(sum(l_Marks1))
    Sum_T_Marks=(sum(l_T_Marks1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...