62. Массивы 63. Алгоритмы обработки массивов
Скачать 1.09 Mb.
|
Преобразования «строка» – «число»Из строки в число: s = "123" N = int ( s ) # N = 123 s = "123.456" X = float ( s ) # X = 123.456 Из числа в строку: N = 123 s = str ( N ) # s = "123" s = "{:5d}".format(N) # s = " 123" X = 123.456 s = str ( X ) # s = "123.456" s = "{:7.2f}".format(X) # s = " 123.46" s = "{:10.2e}".format(X) # s = " 1.23e+02" Задачи«A»: Напишите программу, которая вычисляет сумму трех чисел, введенную в форме символьной строки. Все числа целые. Пример:_Введите_выражение:_12+3+45_Ответ:_60_«B»'>Пример: Введите выражение: 12+3+45 Ответ: 60 «B»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются только знаки «+» или «–»). Выражение вводится как символьная строка, все числа целые. Пример: Введите выражение: 12-3+45 Ответ: 54 Задачи«C»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки «+», «–», «*» и «/»). Выражение вводится как символьная строка, все числа целые. Операция «/» выполняется как целочисленное деление. Пример: Введите выражение: 12*3+45 Ответ: 81 Задачи«D»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки «+», «–», «*» и «/») и круглых скобок. Выражение вводится как символьная строка, все числа целые. Операция «/» выполняется как целочисленное деление (div). Пример: Введите выражение: 2*(3+45)+4 Ответ: 100 Строки в процедурах и функцияхЗадача: построить процедуру, которая заменяет в строке s все вхождения слова-образца wOld на слово-замену wNew. пока слово wOld есть в строке s удалить слово wOld из строки вставить на это место слово wNew Что плохо? ? wOld: "12" wNew: "A12B" зацикливание s res б) wNew s res в) s res г) wOld res s а) wNew
s = "12.12.12" s = replaceAll ( s, "12", "A12B" ) print( s ) def replaceAll ( s, wOld, wNew ): lenOld = len(wOld) res = "" while len(s) > 0: p = s.find ( wOld ) if p < 0: res = res + s return if p > 0: res = res + s[:p] res = res + wNew if p+lenOld >= len(s): s = "" else: s = s[p+lenOld:] return res добавить слово-замену строка кончилась взять «хвост» взять начало перед образцом искать образец если не нашли s = "12.12.12" s = s.replace( "12", "A12B" ) print ( s ) Встроенная функция: Задачи«A»: Напишите функцию, которая отсекает всю часть строки после первого слова. Пример: Введите строку: Однажды в студёную зимнюю пору... Первое слово: Однажды |