Python, как второй язык программирования

(Различия между версиями)
Перейти к: навигация, поиск
Строка 286: Строка 286:
 
</source>
 
</source>
  
=== Находим скрытый текст ===
+
=== Находим скрытый текст (10.03.2021) ===
  
 
Вам дан текст (text.txt), который был написан одним писателем вскоре после Великой Отечественной войны. Обстоятельства написания книги были довольно сложные, даже драматические. Дело в том, что книгу заставил его написать рецидивист, чтобы присвоить книгу себе. Автору пришлось скрыть в тексте книги один "секрет", чтобы потом доказать, что именно он её написал.
 
Вам дан текст (text.txt), который был написан одним писателем вскоре после Великой Отечественной войны. Обстоятельства написания книги были довольно сложные, даже драматические. Дело в том, что книгу заставил его написать рецидивист, чтобы присвоить книгу себе. Автору пришлось скрыть в тексте книги один "секрет", чтобы потом доказать, что именно он её написал.

Версия 16:28, 10 марта 2021

Содержание

Здесь будут необходимые ссылки (установка, настройка, книжки)

Где брать инсталлятор Python
Официальная документация Python3
Справочник по Python3
Среда программирования на Python
Вердикты тестирующей системы и их описание
Python: стандартный PEP-8 (Python Enhancement Proposal) официальная страница (англ.), один из урезанных переводов, если англ. совсем никак


Сдать тренировочные задачи

Тема Ссылка для входа Критерии оценивания и замечания


Целочисленная арифметика Вход в тестирующую систему (контест 203) любые 7 задач
Условия Вход в тестирующую систему (контест 204) любые 7 задач
Цикл for Вход в тестирующую систему (контест 205) любые 7 задач
Цикл while Вход в тестирующую систему (контест 206) любые 7 задач
Строки, срезы и некоторые методы работы со строками Вход в тестирующую систему (контест 207) любые 7 задач
Строки и циклы Вход в тестирующую систему (контест 208) любые 7 задач
Массивы Вход в тестирующую систему (контест 209) любые 7 задач
Функции и рекурсия Вход в тестирующую систему (контест 210) любые 7 задач
Множества Вход в тестирующую систему (контест 211) любые 7 задач
Словари Вход в тестирующую систему (контест 212) любые 7 задач
Файлы Вход в тестирующую систему (контест 213) любые 7 задач

Материалы некоторых занятий

Начало — бегло про python (27.01.2021)

a = 34
b = 5
print(a + b, a - b, a * b, a // b, a / b, a % b, a ** b)

a = 15.8
b = 3.7
print(a // b, a % b)

a = int(input())
b = int(input())
print(f'a = {a}, b = {b}, a + b = {a + b:10}')

a = True
b = False

x = int(input())
d = 2
while d * d <= x:
    if x % d == 0:
        print('composite')
        break
    d += 1
else:
    print('prime')

for k in range(5):
    print(k, end = ' ')
    # print('Hello!')

print()

s = "dlkjh gqerg!$"
for ch in s:
    print(ch.upper(), end = ' ')

s = "Ax" * 0
print(s)

s = 'R'
print(ord(s), chr(109))

s1 = input()
s2 = input()
print(s1 > s2)
s[0] = '4'   # так нельзя

t = list()
x = []
x = [4444, 3, 4, 5, 99]
print(x)
a = x.pop()
print(a, x)
x.append(3546)
print(x)
x.sort()
print(x)

t = tuple()
x = (4, 5, 6, 7)
y = (67, )

x = set()
x = {4, 6, 2, 5, 8, 9}
for elem in x:
    print(elem)
print(x)

mutable
immutable
d = {'Vova': 5, 'Anya': 5, 'Roma': 2}
print(d)
d['Vova'] = 4
print(d)
d['Masha'] = 4
print(d)
print(d['Vasya'])


name = input()
surname = input()
print(name + ' ' + surname)

def factorial(n):
    if n <= 1:
        return 1
    return n * factorial(n - 1)

print(factorial(0))

Работа с файлами (10.02.2021)

# читаем файл целиком (в строку)
with open('input_data.in') as f_in, open('input_data.copy', 'w') as f_out:
    # f_out.write(f_in.read())
    print(f_in.read(), file=f_out)


# читаем файл целиком (в массив строк)
with open('input_data.in') as f_in, open('input_data.copy', 'w') as f_out:
    x = f_in.readlines()
    print(x)
    for line in f_in.readlines():
        print(sum(map(int, line.split())), file=f_out)

# читаем файл построчно — 1 вариант
with open('input_data.in') as f_in, open('input_data.copy', 'w') as f_out:
    for line in f_in:
        print(sum(map(int, line.split())), file=f_out)

# читаем файл построчно — 2 вариант
with open('input_data.in') as f_in:
    line = f_in.readline()
    line_num = 1
    s = sum(map(int, line.split()))
    print(s, line_num)
    while line != '' and s < 4000:
        line_num += 1
        s += sum(map(int, line.split()))
        print(s, line_num)
        line = f_in.readline()

# читаем файл посимвольно
char_2_search = input()
with open('pg5396.txt') as f_in:
    found = False
    ch = f_in.read(2)
    while ch != '':
        if ch == char_2_search:
            found = True
            break
        ch = f_in.read(1)

print('YES' if found else 'NO')

# последовательно читаем разными методами
with open('partly_read.txt') as f_in:
    s = f_in.read(5)
    # print(f_in.readline())
    # for row in f_in:
    #     print(row)
    #     break
    print(f_in.readlines())
    # print(f_in.read())

Как писать telegram-bot (17.02.2021)

Документация telegram — что такое bot, как он устроен и что нужно сделать, чтобы его написать
API для написания telegram-bot на Python (telegram.ext)
Домашка:

  • Сделать себе токен, пообщавшись в Botfather. И никому его не показывать.
  • Написать бота, который только стартует. Можно поменять строку приветствия, это хотите.

    Пример минимального бота и обработка URL-запросов (24.02.2021)

    from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
    # import logging


    def start(update, context):
        context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")


    def help_(update, context):
        msg = '''This simple bot written just to check the basic environment'''
        context.bot.send_message(chat_id=update.effective_chat.id, text=msg)


    def test_(update, context):
        msg = '''test message'''
        context.bot.send_message(chat_id=update.effective_chat.id, text=msg)


    def unknown(update, context):
        context.bot.send_message(chat_id=update.effective_chat.id, text="Sorry, I didn't understand that command.")

    # тут вместо многоточия надо вставить ваш токен, который вы получили, пообщавшись с FatherBot
    updater = Updater(token='...', use_context=True)

    dispatcher = updater.dispatcher

    start_handler = CommandHandler('start', start)
    dispatcher.add_handler(start_handler)

    help_handler = CommandHandler('help', help_)
    dispatcher.add_handler(help_handler)

    test_handler = CommandHandler('test', test_)
    dispatcher.add_handler(test_handler)

    unknown_handler = MessageHandler(Filters.command, unknown)
    dispatcher.add_handler(unknown_handler)

    updater.start_polling()


    import urllib.request

    url = "https://ocw.mit.edu/courses/most-visited-courses/"
    response = urllib.request.urlopen(url)
    x = response.read().decode().split('\n')[:20]
    print(x)

    Находим скрытый текст (10.03.2021)

    Вам дан текст (text.txt), который был написан одним писателем вскоре после Великой Отечественной войны. Обстоятельства написания книги были довольно сложные, даже драматические. Дело в том, что книгу заставил его написать рецидивист, чтобы присвоить книгу себе. Автору пришлось скрыть в тексте книги один "секрет", чтобы потом доказать, что именно он её написал.

    Секрет устроен так: начиная с какого-то места в этом тексте надо смотреть на первые буквы каждого N-го слова. Число N при этом нам неизвестно. Если угадать место и число N, то всё получится.

    Текст книги

    Словарик с большим количеством слов, для справки.
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты