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

Программирование на пайтоне

Workout Ученик (87), на голосовании 2 месяца назад
В настольной игре Скрабл (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
Голосование за лучший ответ
ostryi trizubetc [420] Знаток (374) 3 месяца назад
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]))
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (258851) 3 месяца назад
 def calculate_scrabble_score(word): 
# Определяем стоимости букв
scores = {
'A': 1, 'E': 1, 'I': 1, 'O': 1, 'U': 1, 'L': 1, 'N': 1, 'S': 1, 'T': 1, 'R': 1,
'D': 2, 'G': 2,
'B': 3, 'C': 3, 'M': 3, 'P': 3,
'F': 4, 'H': 4, 'V': 4, 'W': 4, 'Y': 4,
'K': 5,
'J': 8, 'X': 8,
'Q': 10, 'Z': 10,
'А': 1, 'В': 1, 'Е': 1, 'И': 1, 'Н': 1, 'О': 1, 'Р': 1, 'С': 1, 'Т': 1,
'Д': 2, 'К': 2, 'Л': 2, 'М': 2, 'П': 2, 'У': 2,
'Б': 3, 'Г': 3, 'Ё': 3, 'Ь': 3, 'Я': 3,
'Й': 4, 'Ы': 4,
'Ж': 5, 'З': 5, 'Х': 5, 'Ц': 5, 'Ч': 5,
'Ш': 8, 'Э': 8, 'Ю': 8,
'Ф': 10, 'Щ': 10, 'Ъ': 10
}

# Переводим слово в верхний регистр, чтобы учитывать обе регистры
word = word.upper()

# Вычисляем общую стоимость слова
total_score = sum(scores[letter] for letter in word)

return total_score

# Ввод слова от пользователя
word = input("Введите слово: ")

# Вычисление стоимости слова
score = calculate_scrabble_score(word)

# Вывод результата
print(f"Стоимость слова '{word}': {score}")
ǫᴜᴢᴢ Мастер (1579) 3 месяца назад
 scores = { 
'А': 1, 'В': 1, 'Е': 1, 'И': 1, 'Н': 1, 'О': 1, 'Р': 1, 'С': 1, 'Т': 1, 'А': 1, 'E': 1, 'I': 1, 'O': 1, 'U': 1, 'L': 1, 'N': 1, 'S': 1, 'T': 1, 'R': 1,
'Д': 2, 'К': 2, 'Л': 2, 'М': 2, 'П': 2, 'У': 2, 'D': 2, 'G': 2,
'Б': 3, 'Г': 3, 'Ё': 3, 'Ь': 3, 'Я': 3, 'B': 3, 'C': 3, 'M': 3, 'P': 3,
'Й': 4, 'Ы': 4, 'F': 4, 'H': 4, 'V': 4, 'W': 4, 'Y': 4,
'Ж': 5, 'З': 5, 'Х': 5, 'Ц': 5, 'Ч': 5, 'K': 5,
'Ш': 8, 'Э': 8, 'Ю': 8, 'J': 8, 'X': 8,
'Ф': 10, 'Щ': 10, 'Ъ': 10, 'Q': 10, 'Z': 10
}

def score_word(word):
score = 0
for letter in word.upper():
if letter in scores:
score += scores[letter]
else:
print(f"Unknown letter: {letter}")
return None
return score

word = input()
print(f"{score_word(word)}")
Похожие вопросы