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

  • Пример создания множества

  • Прямоугольники (Целочисленное деление) Имеется стол прямоугольной формы с размерами a×b

  • Ввод и вывод в файл в Питоне file = open (" input . txt ", " r ")

  • Решим предыдущую задачу с применением файлов file = open("input.txt","r") file1 = open("output.txt","w") s = file.read().split()

  • Чтение нескольких строк f = open (" input . txt ") f1 = open("output.txt", "w") s =[]

  • Проверка на сайте https :// informatics . msk . ru /

  • Ч исла наибольшее и наименьшее из цифр

  • 4 -х значные числа Тест программы

  • Коробка конфет Коробка конфет стоит t

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


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

    Словари


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

    Решим эту задачу, создав словарь

    Словарь представляет собой данные, состоящие из пар ключ: значение, внутри фигурных скобок.

    dict = { key1: value1, key2: value2}

    dict = {1:'ПН',2:'ВТ',3:'СР',4:'ЧГ',5:'ПТ',6:'СБ',7:'ВС'}

    day = int(input()) # вводим ключ

    print(dict[day]) # выводим значение по ключу

    Множества


    Решим задачу. Нужно подсчитать, сколько в списке уникальных элементов (неповторяющихся)

    Задача легко решается преобразованием вписка вол множество, так как множество содержит только уникальные объекты

    s = [1,3,3,4,4,5,6,6,7,8] # создаем список или множество

    m = set(s) # преобразуем список в множество

    print(m) # печатаем множество

    print(len(m)) # печатаем длину множества

    Обратите внимание:

    Множества не упорядочены, не индексируются и над ними нельзя выполнять срезы (выделять фрагменты)

    Пример создания множества

    num_set = {1, 2, 3, 4, 5, 6}  

    print(num_set)

    months.add(7) – добавление элементов во множество

    num_set.discard(3)  - удаление элементов из множества

    num_set.clear()   - очистить множество

    Объединение множеств

    x = {1, 2, 3}

    y = {4, 5, 6}

    print( x | y )

    print(x & y) – пересечение множеств

    print(x - y) – разность множеств

    print(x < y) – сравнивание множеств

    Задание

    1. Создайте словарь из пар номер месяца: название месяц. Вы вводите номер (1-12), а программа выводит название месяца (названия можно писать сокращенно: янв, фев…)

    2. Имеется массив из имен. Вывести количество уникальных имён

    3. Имеются три множества. Вывести

      1. объединение всех множеств:

      2. пересечение всех пар множеств (три пары)

      3. разность между первой и второй множествами




    Контрольная работа


    1 Заданы размеры А, В прямоугольного отверстия и размеры X, Y, Z кирпича. Определить, пройдет ли кирпич через отверстие”.

    В первой строке вводятся значения А, В в следующей , значения X, Y, Z.

    Пример:

    Ввод

    1 1

    2 2 3

    Вывод

    No
    2. Реализуйте метод сжатия строки на основе счетчика повторяющихся символов. Например, строка aabcccccaaa должна превратиться в а2b1с5аЗ. Если «сжатая» строка оказывается длиннее исходной, метод должен вернуть исходную строку.

    3. Напишите программу, которая находит четные элементы массива

    Олимпиадные задачи

    Целочисленное деление


    Прямоугольники (Целочисленное деление)

    Имеется стол прямоугольной формы с размерами a×b

    (a и b – целые числа, отличные от нуля, a > b). В каком случае на столе можно разместить большее количество картонных прямоугольников с размерами c×d
    (c и d – целые числа, , отличные от нуля, c > d) при размещении их длинной стороной вдоль длинной стороны стола или вдоль короткой?

    Прямоугольники не должны лежать один на другом и не должны свисать со стола.

    (При а=10, b = 8, c = 3, d = 2 Ответ: вдоль)


    Тест программы

    • a, b, c, d = 100, 70, 5, 4 (поперёк)

    • a, b, c, d = 3, 1, 2, 1 (вдоль)




    Решение

    a,b,c,d = 100, 70, 5, 4

    n1,m1,n2,m2 = 0,0,0,0

    n1 = a//c

    m1 = b//d

    n2 = a//d

    m2 = b//c

    print("вдоль" if n1*m1 > n2*m2 else "поперёк")


    Ввод и вывод в файл в Питоне

    file = open("input.txt", "r") # открываем файл для чтения

    "r " можно пропустить: file = open("input.txt")

    или

    with open('input.txt') as file:

    s = file.read() # прочитать весь файл

    s = file.readline() # прочитать строку

    file1 = open("output.txt","w") # открываем файл для записи

    #запись в файл

    s = file1.write()




    Решим предыдущую задачу с применением файлов

    file = open("input.txt","r")

    file1 = open("output.txt","w")

    s = file.read().split()

    a,b,c,d = int(s[0]),int(s[1]),int(s[2]),int(s[3])

    n1,m1,n2,m2 = 0,0,0,0

    n1 = a//c

    m1 = b//d

    n2 = a//d

    m2 = b//c

    #вывод в консоль

    print("вдоль" if m1*n1 > m2*n2 else "поперёк")

    #выводвфайл

    file1.write("вдоль" if m1*n1 > m2*n2 else "поперёк")


    Чтение нескольких строк

    f = open("input.txt")

    f1 = open("output.txt", "w")

    s =[]

    k = 0

    for line in f:

    s.append(line.split())

    a,b,c,d = int(s[k][0]),int(s[k][1]),int(s[k][2]),int(s[k][3])

    n1,m1,n2,m2 = 0,0,0,0

    n1 = a//c

    m1 = b//d

    n2 = a//d

    m2 = b//c

    print("вдоль" if m1*n1 > m2*n2 else "поперёк")

    f1.write("вдоль" if m1*n1 > m2*n2 else "поперёк")

    k+=1

    f.close()

    f1.close()

    Котлеты



    Решение

    k = int(input())

    m = int(input())

    n = int(input())

    if n < k:

    print(2*m)

    else:

    if n%k == 0:

    print(2*m*(n//k))

    else:

    if k // (n%k) >= 2:

    print(2*m*(n//k+1)-m)

    else:

    print(2*m*(n//k+1))




    Проверка на сайте https://informatics.msk.ru/



    (Целочисленное деление)





    Решение
    k = 12

    t = 4

    n = 159

    p = (n-1)//(k*t)+1

    e = ((n-1)%(k*t))//t+1

    print(p,e)





    Ч исла наибольшее и наименьшее из цифр



    2 Сколько итерации необходимо, чтобы получить палиндром из числа n<2000. Если итераций больше 100 вывести нет решения.

    101 => 0, 184 => 3, 196 => нет решения


    4 -х значные числа

    Тест программы

    2000 3000 ответ: 6

    50 3000 ответ: 6

    1000 2000 ответ: 0

    5000 9000 ответ: 31

    5000 100 000 ответ: 31





    Тест

    120 => 4,0

    119 => 3,58

    15 => 0, 30



    Коробка конфет

    Коробка конфет стоит t рубля. В воскресенье в супермаркете действует специальное предложение: заплатив за две коробки конфет, можно получить ещё одну в подарок. Какое наибольшее количество коробок конфет можно купить в воскресенье, если у вас имеется s руб?

    Тест

    s = 740, t = 52 ответ 21

    1   2   3   4   5   6   7   8   9   10   11


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