Спросите пользователя о длине списка (n). Создайте линейный список из n целых чисел. Вставьте ноль после каждого четного значения. Распечатать новый список - PullRequest
0 голосов
/ 30 мая 2019

Я должен попросить пользователя ввести число, а затем распечатать все числа, предшествующие этому, но я должен вставлять 0 после каждого четного числа. Я новичок в Python, поэтому я не знаю много.

n=0
length_even=[]
length_odd=[]

def length_list(n):
    length=int(input('Enter the length of the list: '))
    for i in range(1,length+1):
        if(i%2 != 0):
            length_odd.append(i)
        elif(i%2 == 0) :
            length_even.append(i)
            length_even.insert(i,0) 

    total=length_odd+length_even
    return total

length_list(n)

Если пользователь вводит 5, я ожидаю, что результат будет [1,2,0,3,4,0,5], но фактический результат равен (1,3,5,2,0,4,0) ].

1 Ответ

0 голосов
/ 30 мая 2019

Проблема в том, что вы создаете два независимых списка (length_even и length_odd) и объединяете их (оператор +) после добавления значений в каждый список (length_odd содержит: 1,3,5 и length_even содержит: 2,0,4,0) , Таким образом, вы получите результат: 1,3,5,2,0,4,0. Почему бы вам просто не использовать один список? Посмотрите на код ниже (я сделал только небольшие изменения, чтобы избежать путаницы):

 n=0
 lengthList = []

 def length_list(n):
     length=int(input('Enter the length of the list: '))
     for i in range(1,length+1):
         if(i%2 != 0):
             lengthList.append(i)
         elif(i%2 == 0) :
             lengthList.append(i)
             lengthList.append(0) 

     return lengthList

length_list(n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...