книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Скачать 2.24 Mb.
|
Упражнение 93. Центрируем строку## # Центрируем строку в рамках заданного окна # WIDTH = 80 ## Создаем новую строку, которая будет центрирована в окне заданной ширины # @param s – строка для центрирования # @param width – ширина окна, в котором будет центрирована строка # @return копия строки s с ведущими пробелами для центрирования def center(s, width): # Если строка слишком длинная, возвращаем оригинал if width < len(s): return s # Вычисляем количество пробелов, необходимое для центрирования строки spaces = (width – len(s)) // 2 result = " " * spaces + s Оператор // используется, чтобы округлить результат деления до целого числа. Оператор / не может быть использован, поскольку возвращает число с плавающей точкой, а символ пробела можно поставить только целое количество раз. return result # Демонстрируем центрирование строки def main(): print(center("Известная история", WIDTH)) print(center("от:", WIDTH)) print(center("Кого–то известного", WIDTH)) print() print("Жили–были...") # Call the main function main() Упражнение 95. Озаглавим буквы## # Заглавные буквы в строке # ## Озаглавливаем нужные буквы в строке # @param s – исходная строка для обработки # @return новая строка def capitalize(s): # Создаем копию исходной строки, в которой будем собирать итоговую строку result = s # Делаем заглавной первый непробельный символ в строке pos = 0 while pos < len(s) and result[pos] == ' ': pos = pos + 1 if pos < len(s): # Заменяем символ на заглавный, не затрагивая остальные символы в строке result = result[0 : pos] + result[pos].upper() + \ result[pos + 1 : len(result)] Использование двоеточия внутри квадратных скобок позволяет обратиться к подстроке, которая начинается с индекса, соответствующего числу до двоеточия, и заканчивается индексом, равным числу справа от двоеточия, не включая его. # Делаем заглавной первую букву, которая следует за точкой и # восклицательным или вопросительным знаком pos = 0 while pos < len(s): if result[pos] == "." or result[pos] == "!" or \ result[pos] == "?": # Переходим за знак ''.'', ''!'' or ''?'' pos = pos + 1 # Пропускаем пробелы while pos < len(s) and result[pos] == " ": pos = pos + 1 # Если не достигли конца строки, меняем текущий символ на заглавную букву if pos < len(s): result = result[0 : pos] + \ result[pos].upper() + \ result[pos + 1 : len(result)] # Идем к следующему символу pos = pos + 1 # Делаем заглавными буквы i, когда им предшествует пробел, а следом идет пробел, # точка, восклицательный или вопросительный знак либо апостроф pos = 1 while pos < len(s) – 1: if result[pos – 1] == " " and result[pos] == "i" and \ (result[pos + 1] == " " or result[pos + 1] == "." or \ result[pos + 1] == "!" or result[pos + 1] == "?" or \ result[pos + 1] == "'"): # Заменяем i на I, не затрагивая другие символы result = result[0 : pos] + "I" + \ result[pos + 1 : len(result)] pos = pos + 1 return result # Демонстрируем работу функции def main(): s = input("Введите текст: ") capitalized = capitalize(s) print("Новая версия:", capitalized) # Вызываем основную функцию main() Упражнение 96. Является ли строка целым числом? ## # Определяем, представляет ли строка, введенная пользователем, целое число # ## Посмотрим, включает ли строка целочисленное значение # @param s – строка для проверки # @return True, если это целое число. Иначе False. # def isInteger(s): # Удаляем пробелы в начале и конце строки s = s.strip() # Определяем, являются ли оставшиеся символы целыми числами if (s[0] == "+" or s[0] == "–") and s[1:].isdigit():
return True if s.isdigit(): return True return False # Демонстрируем работу функции isInteger def main(): s = input("Введите строку: ") if isInteger(s): print("Строка является целым числом.") else: print("Строка не является целым числом.") # Вызываем основную функцию, только если файл не импортирован if __name__ == "__main__": main() Переменной __name__ автоматически присваивается значение при запуске программы на языке Python. При этом если файл запущен напрямую из Python, значение этой переменной будет равняться строке “__main__”, а если импортирован в другую программу – имени модуля. Упражнение 98. Простое число? ## Определяем, является ли число простым # @param n – целое число для проверки # @return True, если число простое, иначе False def isPrime(n): if n <= 1: return False
# Проверяем все числа от двух до n, не включая его, на деление n на них без остатка for i in range(2, n): if n % i == 0: return False return True # Определяем, является ли простым введенное пользователем число def main(): value = int(input("Введите целое число: ")) if isPrime(value): print(value, "– простое число.") else: print(value, "не является простым числом.") # Вызываем основную функцию, только если файл не импортирован if __name__ == "__main__": main() |