🎉 Поздравляем! 🎉
Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.
PythonLib
Питон для всех
Привет, криптоэнтузиаст! Ты увлекся анализом названий криптовалют и предполагаешь, что в их именах есть скрытые закономерности. Чтобы проверить свою теорию, тебе нужен инструмент, который быстро покажет, какой символ находится на определенной позиции в названии токена.
Задача: Напиши программу, которая делает следующее:
Сначала запрашивает у пользователя название криптовалютного токена.
Затем спрашивает, сколько символов (позиций) пользователь хочет проверить.
После этого, в цикле, нужное количество раз запрашивает у пользователя номер позиции.
Для каждой введенной позиции программа должна проверить, является ли она допустимой для введенного названия токена.
Если позиция корректна, программа выводит на экран символ, находящийся на этой позиции.
Если позиция некорректна (например, больше, чем длина названия, или отрицательная), программа должна вывести сообщение об ошибке.
Название токена (строка)
Количество проверок (целое число)
Далее, в зависимости от количества проверок, несколько раз вводится номер позиции (целое число)
Символ на указанной позиции (строка) или сообщение об ошибке (строка)
Bitcoin
3
1
5
9
Символ на позиции 1: B
Символ на позиции 5: o
Ошибка! Позиции 9 нет в слове Bitcoin. Длина слова: 7.
Строка в Python — это упорядоченная последовательность символов. Для создания строки её необходимо заключить в одинарные ('...'), двойные ("...") или даже тройные кавычки ("""...""" или '''...'''), которые особенно полезны для многострочных текстов.
Ключевая особенность строк в Python — их неизменяемость (immutability). Это означает, что после создания строки вы не можете изменить её отдельные символы. Любая операция, которая "изменяет" строку, на самом деле создает новую.
string1 = "Hello, World!"
string2 = 'Python is fun'
# Пример многострочной строки
multiline_string = """Это строка,
которая занимает
несколько строк кода."""
Каждый символ в строке имеет свой уникальный номер, или индекс. Индексация позволяет нам получить доступ к любому отдельному символу.
Важно помнить: Индексация в Python всегда начинается с 0, а не с 1. Попытка обратиться к несуществующему индексу вызовет ошибку IndexError.
w = "Python"
print(w[0]) # Вывод: P
print(w[1]) # Вывод: y
print(w[2]) # Вывод: t
print(w[3]) # Вывод: h
print(w[4]) # Вывод: o (а не 0, как в исходном примере)
Также существует отрицательная индексация, которая очень удобна для доступа к символам с конца строки, где -1 — это последний символ, -2 — предпоследний и так далее.
print(w[-1]) # Вывод: n (последний символ)
print(w[-2]) # Вывод: o (предпоследний символ)
Срезы — это мощный инструмент для извлечения части строки (подстроки). Они позволяют получить не один символ, а целый диапазон.
Общий синтаксис: строка[начало : конец : шаг]
начало : индекс, с которого начинается срез (этот символ включается в результат).конец : индекс, на котором срез заканчивается (этот символ не включается в результат).шаг : определяет, с каким интервалом извлекать символы (по умолчанию равен 1).Извлечение подстроки
string = "Hello, World!"
substring = string[0:5] # Символы с 0 по 4 включительно
print(substring) # Вывод: Hello
Отсутствие начального или конечного индекса Если опустить начальный индекс, срез начнется с самого начала строки. Если опустить конечный — продолжится до самого конца.
string = "Hello, World!"
substring1 = string[:5] # С начала до индекса 5 (не включительно)
substring2 = string[7:] # С индекса 7 и до конца строки
print(substring1) # Вывод: Hello
print(substring2) # Вывод: World!
Использование шага Шаг позволяет "перепрыгивать" через символы. Например, шаг 2 берет каждый второй символ.
string = "Hello, World!"
substring = string[::2] # Каждый второй символ от начала до конца
print(substring) # Вывод: Hlo ol!
Отрицательные индексы в срезах Их можно комбинировать для получения частей строки с конца.
string = "Hello, World!"
substring = string[-6:-1] # Начинаем с 6-го символа с конца и идем до 1-го с конца
print(substring) # Вывод: World
Полезный трюк: переворот строки Самый простой и популярный способ перевернуть строку — это использовать срез с шагом -1.
string = "Hello, World!"
reversed_string = string[::-1]
print(reversed_string) # Вывод: !dlroW ,olleH
Сложение (конкатенация) выполняется с помощью оператора +. Он "склеивает" строки в одну новую.
str1 = "Hello"
str2 = "World"
result = str1 + ", " + str2 + "!"
print(result) # Вывод: Hello, World!
Важный совет: Нельзя складывать строку с числом напрямую. Чтобы это сделать, число нужно сначала преобразовать в строку с помощью функции str().
# print("Age: " + 25) # Вызовет TypeError
print("Age: " + str(25)) # Правильно! Вывод: Age: 25
Умножение выполняется с помощью оператора *, который повторяет строку заданное количество раз. Это удобно для создания разделителей или форматирования.
string = "Go"
result = string * 3
print(result) # Вывод: GoGoGo
print("-" * 20) # Вывод: --------------------
Длина строки Встроенная функция len() возвращает количество символов в строке.
my_string = "Hello"
print(len(my_string)) # Выведет: 5
Проверка на вхождение подстроки Операторы in и not in позволяют проверить, содержится ли одна строка внутри другой. Результатом будет True или False.
Помните: эта проверка чувствительна к регистру! 'd' и 'D' — это разные символы.
name = "Daniil"
password = "Qwerty2000!"
print('D' in name) # Выведет: True
print('d' in name) # Выведет: False
print('3' not in password) # Выведет: True
Строку можно перебрать в цикле for. Есть два основных способа, и выбор зависит от задачи.
Способ 1: Простой перебор (более "питоничный") Этот способ используется, когда вам нужны только сами символы строки. Он проще и читабельнее.
a = "1516 the best"
for char in a: # Переменная char последовательно принимает значение каждого символа
if char in "1234567890":
print(char)
Способ 2: Перебор по индексам Этот способ нужен, когда вам важен не только сам символ, но и его позиция (индекс).
a = "1516 the best"
for i in range(len(a)): # i будет принимать значения от 0 до len(a)-1
if a[i] in "1234567890":
print(f"Найден символ '{a[i]}' на позиции {i}")
Мы рассмотрели базовые, но очень важные операции:
+) и повторение (*) для создания новых строк.Это основа, на которой строится вся работа с текстом в Python. Чтобы двигаться дальше, изучите методы строк. Это встроенные функции, которые позволяют делать со строками еще больше полезных вещей, например:
.lower() / .upper() — привести всю строку к нижнему или верхнему регистру..strip() — убрать пробелы и переносы строк в начале и в конце..replace('старое', 'новое') — заменить все вхождения одной подстроки на другую..split() — разбить строку на список по разделителю (например, по пробелу)..startswith('префикс') / .endswith('суффикс') — проверить, начинается или заканчивается ли строка на определенную последовательность символов.# Запрашиваем у пользователя название токена и сохраняем его в переменную
token_name = input()
# Запрашиваем количество проверок, которое хочет сделать пользователь
checks_count_str = input()
# Преобразуем полученную строку в целое число
checks_count = int(checks_count_str)
# Запускаем цикл for, который повторится столько раз, сколько указал пользователь
for i in range(checks_count):
# Внутри цикла каждый раз запрашиваем номер позиции для проверки
# f-строка помогает красиво вывести подсказку с допустимыми номерами позиций
position_str = input()
# Преобразуем полученную строку в целое число
position = int(position_str)
# Условие: проверяем, что введенная позиция находится в допустимых границах
# len(token_name) возвращает длину строки. Индексы идут от 0 до длины-1.
if 0 <= position <= len(token_name):
# Если позиция корректна, получаем символ по этому индексу
symbol = token_name[position-1]
# Выводим результат
print(f"Символ на позиции {position}: {symbol}")
else:
# Если позиция некорректна, выводим сообщение об ошибке
print(f"Ошибка! Позиции {position} нет в слове {token_name}. Длина слова: {len(token_name)}.")
🎉 Поздравляем! 🎉
Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.
AD
Реклама
Запускаем ваш код...