Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачку на питоне !

Лилия Закимбаева Ученик (102), на голосовании 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 очков. Напишите программу, которая вычисляет стоимость введенного пользователем слова. Будем считать, что на вход подается только одно слово, которое содержит либо только английские, либо только русские буквы. Пример ввода: ноутбук Пример вывода: 12 Необходимо реализовать данное задание из нескольких функций записанных в один модуль. Все результаты должны записываться в отдельный файл. Результаты представить в ввиде модуля в формате .py и 2 строчки кода его подключения, использование.
Голосование за лучший ответ
GGG Просветленный (31967) 2 месяца назад
 # scrabble_score.py 

def get_english_score(word):
scores = {
1: set('AEIOULNSTR'),
2: set('DG'),
3: set('BCMP'),
4: set('FHVWY'),
5: set('K'),
8: set('JX'),
10: set('QZ')
}
return sum(next(score for score, letters in scores.items() if letter.upper() in letters) for letter in word)

def get_russian_score(word):
scores = {
1: set('АВЕИНОРСТ'),
2: set('ДКЛМПУ'),
3: set('БГЁЬЯ'),
4: set('ЙЫ'),
5: set('ЖЗХЦЧ'),
8: set('ШЭЮ'),
10: set('ФЩЪ')
}
return sum(next(score for score, letters in scores.items() if letter.upper() in letters) for letter in word)

def calculate_score(word):
if all(ord('A') <= ord(c.upper()) <= ord('Z') for c in word):
return get_english_score(word)
else:
return get_russian_score(word)

def save_result(word, score):
with open('scrabble_results.txt', 'a', encoding='utf-8') as f:
f.write(f"Слово: {word}, Очки: {score}\n")

def process_word(word):
score = calculate_score(word)
save_result(word, score)
return score
Теперь, чтобы использовать этот модуль, вы можете создать основной файл, например main.py, и добавить следующий код:
 # main.py 
from scrabble_score import process_word

word = input("Введите слово: ")
score = process_word(word)
print(f"Стоимость слова '{word}': {score} очков")
Timur MagerramovПрофи (534) 2 месяца назад
Фу нейросеть юзер ливай с сайта
Похожие вопросы