Главная страница
Навигация по странице:

  • Можно и короче : s = input()list1 = [a for a in s]list1.sort()print(list1)Ещё короче

  • практикумы по языку Питон. Питон. Практикум Загидуллин Наиль Рашитович мбоу сош 2 Оглавление Введение в Питон 4 Команда вывода 4


    Скачать 7.93 Mb.
    НазваниеПрактикум Загидуллин Наиль Рашитович мбоу сош 2 Оглавление Введение в Питон 4 Команда вывода 4
    Анкорпрактикумы по языку Питон
    Дата07.11.2022
    Размер7.93 Mb.
    Формат файлаdocx
    Имя файлаПитон.docx
    ТипПрактикум
    #774704
    страница4 из 11
    1   2   3   4   5   6   7   8   9   10   11

    Структурные типы данных

    Строки

    Коды символов




    Напишем программу, которая запрашивает номер английской буквы в алфавите и выводит саму букву, например:

    Ввод 2

    Вывод: А

    Решение:

    s = int(input())

    print(chr(s+64))

    Буквы А – Z в таблице начинаются с кода 65. Поэтому, когда мы вводим 1, получаем код 1+64 = 65 т.е. код буквы А. Функция chr() – выводит символ по его коду.

    ord(‘A’) – это обратная функция, которая по букве выводит его код

    Операции со строками


    Дана задача:

    Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 1000 идущих подряд цифр 8?

    ПОКА нашлось (999) ИЛИ нашлось (888)

    ЕСЛИ нашлось (888)

    ТО заменить (888, 9)

    ИНАЧЕ заменить (999, 8)

    Решение:

    s = '8'*1000

    while s.count('999') or s.count('888'):

    if s.count('888'):

    s = s.replace('888','9',1)

    else:

    s = s.replace('999','8',1)

    print(s)

    Ответ: 8998

    Срезы


    s = 'spameggs'

    s[0] # 's'

    s[3:5] # 'me'

    s[2:-2] # 'ameg' убираем слева и справа 2 символа

    s[:6] # 'spameg' первая цифра по умолчанию 0

    s[1:] # 'pameggs'

    s[::-1] # 'sggemaps' перевернутый текст

    Задание:

    1. Напишите программу, которая запрашивает любую одну букву из A-Z и выводит его код с помощью функции ord()

    2. Напишите программу, которая циклически выводит все буквы от A - Z . Используйте функцию chr()

    3. С помощью среза проверьте, является ли введенное слово палиндромом. (палиндром это слово, которое и слева и справа читается одинаково, например «123» и «321»

    4. Напишите программу и решите задачу:

      Какая строка получится в результате применения приведённой ниже программы к строке вида 1…12…2 (40 единиц и 40 двоек)?

     

    НАЧАЛО

    ПОКА нашлось (111)

        заменить (111, 2)

        заменить (222, 1)

    КОНЕЦ ПОКА

    КОНЕЦ

    Массивы


    Напишем программу, которая запрашивает день недели и выводит его название, например, вводим 1 выводится Понедельник.

    Решим эту задачу, создав одномерный массив

    days = ['Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье']

    day = int(input())

    print(days[day - 1]) # счет в массивах начинается с нуля

    Создадим массив из цифр числа, отсортировав его по возрастанию

    s = input()

    list1 =[] # создаем пустой массив

    for a in s: # перебираем все цифры числа

    list1.append(a) # добавляем элемент в массив

    list1.sort() # сортируем

    print(list1)

    Можно и короче:

    s = input()

    list1 = [a for a in s]

    list1.sort()

    print(list1)

    Ещё короче:

    list1 =[a for a in input()]

    list1.sort() # list1.sort(reverse=True) – сортирует по убыванию

    print(list1)

    С помощью join() можно обратно свернуть массив в число, у которого цифры отсортированы

    print(''.join(list1))

    Задания

    1. Напишите программу, которая запрашивает любое трехзначное число, в котором нет цифры 0, выводит максимальное и минимальное число, составленное из цифр этого числа.

    2. Решите предыдущую задачу, если цифра 0 тоже может присутствовать, но имейте ввиду, что 0 не может быть первой цифрой 3-хзначного числа.


    Обработка массивов


    Создадим массив из 30 элементов с помощью генератора случайных целых чисел из диапазона [0,10]

    import random # импортируем модуль для работы со случайными числами

    m = [random.randint(0,10) for i in range(30)]

    print(m)

    Пузырьковая сортировка массивов


    import random

    n = 10

    m = [random.randint(0,10) for i in range(n)]

    print(m)

    # сортировка

    for i in range(1,n):

    for j in range(0,n-i):

    if m[j]>m[j+1]:

    m[j],m[j+1] = m[j+1],m[j] # меняем местами

    print(m)

    Сравниваются последовательно соседние элементы, если предыдущий элемент в паре больше последующей, то они меняются местами. В итоге, после первого прохода, самый большой элемент оказывается на последнем месте. Потом перебор начинается с начала, сравниваются вновь пары, кроме последней. После каждого прохода, число сравниваемых пар уменьшается.

    Если нужно сортировать по убыванию, то нужно менять знак больше на меньше, в итоге самый маленький объект, после первого прохода, окажется на последнем месте.

    Сортировка пузырьком (танец)

    http://www.youtube.com/watch?v=5ybLoO4mAY4

    Сортировка расчёской


    Почитайте про сортировку расческой здесь https://thecode.media/comb-sort/

    import random, math

    n = 10

    m = [random.randint(0,10) for i in range(n)]

    print(m)

    factor = 1.247

    gapFactor = n/factor

    while (gapFactor > 1):

    gap = math.round(gapFactor)

    for i in range(n-gap-1):

    if (m[i] > m[gap+i]):

    m[i],m[gap+i] = m[gap+i],m[i]

    gapFactor = gapFactor/factor

    print(m)

    Отсортировать массив можно с помощью функции sort() (для сортировки списков и кортежей используется sorted() )

    m = [1,5,2,8,3]

    m.sort()

    print(m) # m = [1,5,2,8,3]

    m.sort(reverse =True) # сортировка по убыванию

    print(m) # [8, 5, 3, 2, 1]

    Задание

    1. Создайте одномерный массив из 10 элементов с помощью генератора целых чисел в промежутке [10,100].

    • Выведите все элементы массива построчно

    • Выведите все элементы массива в одну строку

    • Выведите только четные элементы

    • Выведите максимальный и минимальный элементы массива

    • Отсортируйте массив по возрастанию.


    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта