Рубрики
Без рубрики

Изучение питона- базовый курс: День 13, Резюме недели и реализация стека

Сегодня давайте создадим многомерные списки коллац, моделируют стеки и очереди и напишем … Помечено LearningPython, Python, Codenewbie, новичками.

Сегодня давайте создадим многомерные списки коллац, моделируют стеки и очереди и показываем самый большой кусок кода еще …

Резюме недели-

  • День 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, in 
    print(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”