СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Практическое занятие №46

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Практическое занятие №46»

Практическое занятие №46 (1И)

Тема: Применение списков и словарей в реальных задачах

Цель работы: формирование теоретических и практических навыков работы на языке программирования Python

Оборудование: компьютер с установленной операционной системой Windows, подключение к сети Интернет

Время работы 2 часа

Ход работы

Задача 1: Скрабл

В настольной игре Скрабл (Scrabble) каждая буква имеет определенную ценность. В случае с английским алфавитом очки распределяются так:

  • A, E, I, O, U, L, N, S, T, R – 1 очко;

  • D, G – 2 очка;

  • B, C, M, P – 3 очка;

  • F, H, V, W, Y – 4 очка;

  • K – 5 очков;

  • J, X – 8 очков;

  • Q, Z – 10 очков.

А русские буквы оцениваются так:

  • А, В, Е, И, Н, О, Р, С, Т – 1 очко;

  • Д, К, Л, М, П, У – 2 очка;

  • Б, Г, Ё, Ь, Я – 3 очка;

  • Й, Ы – 4 очка;

  • Ж, З, Х, Ц, Ч – 5 очков;

  • Ш, Э, Ю – 8 очков;

  • Ф, Щ, Ъ – 10 очков.

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

import re

def isCyrillic(text):

return bool(re.search('[а-яА-Я]', text))

points_en = {1:'AEIOULNSTR',

2:'DG',

3:'BCMP',

4:'FHVWY',

5:'K',

8:'JZ',

10:'QZ'}

points_ru = {1:'АВЕИНОРСТ',

2:'ДКЛМПУ',

3:'БГЁЬЯ',

4:'ЙЫ',

5:'ЖЗХЦЧ',

8:'ШЭЮ',

10:'ФЩЪ'}

text = input().upper()

if isCyrillic(text):

print(sum([k for i in text for k, v in points_ru.items() if i in v]))

else:

print(sum([k for i in text for k, v in points_en.items() if i in v]))

Задача 2: Рюкзак

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


things = {'зажигалка': 20, 'компас': 100, 'фрукты': 500, 'рубашка': 300,

'термос': 1000, 'аптечка': 200, 'куртка': 600, 'бинокль': 400, 'удочка': 1200,

'салфетки': 40, 'бутерброды': 820, 'палатка': 5500, 'спальный мешок': 2250, 'жвачка': 10}

ves = int(input()) * 1000

sorted_things = dict(sorted(things.items(), key=lambda x: -x[1]))

for k, v in sorted_things.items():

if v

print(k, sep='/n')

ves -= v

Задача 3: Редкое слово

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


words = {}

for i in input().split():

i = i.strip('.,!?:;-').lower()

words[i] = words.get(i, 0) + 1

print(min(words.items(), key=lambda x: (x[1], x[0]))[0])