Сегодня давайте создадим многомерные списки коллац, моделируют стеки и очереди и показываем самый большой кусок кода еще …
Резюме недели-
День 10 Мы узнали о списках в Python и различных функциях списка, таких как Popping, добавление, копирование и многое другое. Затем мы использовали эти функции для создания программы для динамической генерации списков.
День 11 Мы узнали о многомерных списках, динамической генерации многомерных списков и введены в кортежи. Мы узнали, что кортежи были не изменяемыми списками.
День 12 Мы использовали списки для создания алгоритмов, таких как сортировка пузырьков, бинарный поиск и последовательный поиск.
Образец вопросов
Перед тем, как перейти в стеки и очереди, давайте сначала проверим применение динамического генерации многомерных списков. 1) Составьте многомерный список, в котором хранится последовательность гипотезы коллаца для целых чисел 1-10.
a=[] for i in range(1,10): b=i a.append([]) #Append an empty list into a list while(b!=1): a[i-1].append(int(b)) #int() to prevent trailing decimal 0. eg 5.0 will be written as 5 if(b%2==0): b=b/2 else: b=3*b+1 a[i-1].append(1) print(a)
Выход-
[[1], [2, 1], [3, 10, 5, 16, 8, 4, 2, 1], [4, 2, 1], [5, 16, 8, 4, 2, 1], [6, 3, 10, 5, 16, 8, 4, 2, 1], [7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1], [8, 4, 2, 1], [9, 28, 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]]
2) Реализация стека –
Реализуйте стек, с Lifo (последнее в первую очередь). Пользователь может нажать, всплыть и распечатать стек в любое время.
Это самая большая программа, которую мы когда -либо писали до сих пор. Видите эти уровни гнездования? Но не волнуйтесь, все правильно объяснено в комментариях, кроме кода. Для тех, кто новичок в Lifo и Fifo, пожалуйста, посетите Структура данных стека
print("Please enter 'pop' for popping, 'push' for pushing, print to print and end to terminate the program.....") stack=[] #make a list named 'stack' while (True): a=input("...") #get input from the user if(a=='push'): while True: #To check if the input is a number or not a=input("Which number to push?... ") if(48<=ord(a)<=57): #check stack.append(a) #push the number break #if the input is number, then terminate the nested while loop, # else continue the loop until numeric value is obtained else: print("Please enter only numbers ") #error return elif(a=='pop'): print(stack.pop()) #pop, ie. remove and return elif(a=='print'): print(stack) #print the list elif(a=='end'): break #terminate the while loop else: print("Unknown command ") print("Thank you")
Выход-
Please enter 'pop' for popping, 'push' for pushing, print to print and end to terminate the program..... ...push Which number to push?... 3 ...poppp Unknown command ...pop 3 ...push Which number to push?... 4 ...push Which number to push?... k Please enter only numbers Which number to push?... l Please enter only numbers Which number to push?... 5 ...print ['4', '5'] ...pop 5 ...print ['4'] ...push Which number to push?... 3 ...end Thank you
Упражнения-
1) Напишите программу, чтобы эффективно составить список основных чисел. Сначала храните первичные номера в списке, тогда следующее первичное число – это то, что не делится на предыдущие числа Prime.
2) Наша программа реализации стека имеет много зацепков. Некоторая обработка ошибок будет рассмотрена позже, но теперь мы сосредоточимся на этой ошибке-
Please enter 'pop' for popping, 'push' for pushing, print to print and end to terminate the program..... ...push Which number to push?... 3 ...push Which number to push?... 2 ...pop 2 ...pop 3 ...pop Traceback (most recent call last): File "main.py", line 16, inprint(stack.pop()) #pop, ie. remove and return IndexError: pop from empty list
Эта ошибка вызвана выскочкой из пустого списка. Измените программу, чтобы проверить это, и увешите этот вывод-
Please enter 'pop' for popping, 'push' for pushing, print to print and end to terminate the program..... ...push Which number to push?... 2 ...pop 2 ...pop Cannot pop from an empty list ...
Ответ находится в учебном репо Python, но я бы хотел, чтобы все разделили Пример программы Мы сделали раньше и открыли «запрос на вытягивание» для этой модификации. Для тех, кто новичок с запросами на вытягивание, Здесь это гид.
3) Напишите программу для реализации структуры данных FIFO в очереди. Подсказка изменяет реализацию стека.
Образец вывода-
Please enter 'Add' for Adding, 'Remove' for removing, print to print and end to terminate the program..... ...Add Which number to Add?... 4 ...Add Which number to Add?... 5 ...Add Which number to Add?... 6 ...remove Unknown command ...Remove 4 ...print ['5', '6'] ...Remove 5 ...Remove 6 ...print [] ...Remove Cannot Remove from an empty list ...end Thank you
Опять же, ответ в репо, но, пожалуйста, распаритесь и попробуйте самостоятельно
- Мы все знаем, что ни я, ни вы никогда не видели друг друга. Обучение в отдаленной среде сложно, и обучение, возможно, еще сложнее. Обучение никогда не является односторонним процессом. Я прошу всех активно участвовать в этом курсе, либо через комментарии ниже, либо разбрызгиваю на GitHub Learning-Python Repo 😃 😃 😃
Для тех, кто еще не сделал учетную запись в dev.to, вы можете получить бесплатную простую регистрацию, используя свои учетные записи Mail или Github. Я бы предложил начинающим разработчикам сразу же создать вашу учетную запись GitHub Free. Вам потребуется зарегистрироваться рано или поздно
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 Следующий день начнется со вторника, понедельник зарезервирован для аварийного курса Matlab Monday
Оригинал: “https://dev.to/aatmaj/learning-python-basic-course-day-13-summary-of-the-week-and-stack-implementation-1b56”