02. Find The Capitals // Basic Syntax, Conditional Statements and Loops - More Exercises
https://pastebin.com/afpJ0VGG
С дадените примерни вход работи, резултат в джъдж - 0/100.
Благодаря.
https://pastebin.com/afpJ0VGG
С дадените примерни вход работи, резултат в джъдж - 0/100.
Благодаря.
Грешката е в проверката на ред №8:
if dec < 97:
Трябва да е:
if 65 <= dec <= 90:
На позиция №97 в ASCII таблицата е буквата "а", но преди нея не е буквата "Z". Отделно, проверката ще хване и всички символи преди "А".
За да избегнете подобни грешки и да направите кода си по-четим, избягвайте да използвате подобни "магически" числа. Горната проверка може да се напише и така:
if 'A' <= value <= 'Z':
Това е доста по-четим вариант и не задължава четящият кода да търси в ASCII таблицата за да разбере какво трябва да прави проверката.
Проверката дали даден символ е главна буква е често срещан проблем в практиката и всеки програмен език има вградена функционалност за това. На Python горната проверка може да се напише и по този начин, с който минимизираме шанса за грешки и ясно комуникираме каква точно правим:
if value.isupper():
Цялото решение може много да се съкрати и да се подобри четимостта му, ако се използват вградените функционалности на езика, например:
word = input()
indices = []
for index, value in enumerate(word):
if value.isupper():
indices.append(index)
print(indices)
====================
Ето и още по-съкратен вариант на решението, като в практиката е по-вероятно да видите решение, подобно на това:
word = input()
indices = [index for index, character in enumerate(word) if character.isupper()]
print(indices)