Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Топ:
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2022-10-29 | 30 |
5.00
из
|
Заказать работу |
|
|
Создано
2014-02-03
Выбрать из строки числа
Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке.
Следует посимвольно перебирать строку. Если очередной символ цифра, то надо добавить ее в новую строку. Далее проверять символы за ней, и если они тоже цифры, то добавлять их в конец этой новой подстроки из цифр. Когда очередной символ окажется не цифрой, или будет достигнут конец строки, то надо преобразовать строку из цифр в число и добавить в список.
s = input()l = len(s)integ = []i = 0 while i < l: s_int = '' a = s[i] while '0' <= a <= '9': s_int += a i += 1 if i < l: a = s[i] else: break i += 1 if s_int!= '': integ.append(int(s_int)) print (integ)5 dkfj78df 9 8 dkfj8[5, 78, 9, 8, 8]Найти слово по его номеру
В тексте найти слово под определенным номером (например, пятое слово по счету). Вывести на экран его первую букву.
В программе ниже переменная count используется, чтобы считать слова, а f - чтобы определять, находимся ли мы внутри очередного слова или началось новое слово.
Если началось новое слово, то счетчик слов увеличивается, и если счетчик равен искомому по номеру слову, то цикл завершается.
s = input()l = len(s)n = int(input("Номер слова: "))count = 0f = 0i = 0 while i < l: if s[i]!= ' ' and f == 0: count += 1 f = 1 if count == n: break elif s[i] == ' ': f = 0 i += 1 print (s[i])Пример выполнения кода:
один два три четы пять шесть Номер слова: 4чОднако с помощью Python решение этой задачи может быть существенно короче:
s = input()l = len(s)n = int(input("Номер слова: "))s = s.split() print (s[n][0])Метод split() без аргумента разбивает строку на слова по пробелу. Выражение s[n][0] извлекает из списка n-ый элемент, а затем берет из сроки первый символ.
|
Определить длину самого короткого слова в строке
В заданной строке найти самое короткое слово. Слова могут быть разделены пробелами, несколькими пробелами, знаками препинания.
Алгоритм решения задачи:
1. Длина очередного слова будет храниться в переменной w. Вначале присвоим этой переменно 0, т. к. в строке слов может вообще не быть.
2. Длина самого короткого слова будет записана в переменной min_w. Вначале этой переменной присваивается максимально возможная длина слова. Самое длинное слово может быть, если вся строка состоит только из одного слова. Поэтому сначала min_w равна длине строки.
3. Перебираем строку посимвольно в цикле for.
4. Если очередной символ является буквой, то увеличиваем значение w.
5. Иначе проверяем не меньше ли длина только что "измеренного" слова, чем значение min_w. Если это так, то меняем значение min_w на значение w.
6. Также в ветке else (иначе) обнуляем w, т.к. очередное слово закончилось и необходимо будет "измерять" новое.
s = input()
w = 0
min_w = len(s)
for i in s:
if 'a'<=i<='z' or 'A'<=i<='Z' \
or 'а'<=i<='я' or 'А'<=i<='Я':
w += 1
else:
if w < min_w and w!= 0:
min_w = w
w = 0
print (min_w)
Пример работы программы:
Кто сказал мяу?
3
1 what
4
Отсортировать слова в строке по возрастанию их длины
Вводится строка, состоящая из слов, разделенных пробелами. Требуется отсортировать слова в строке так, чтобы наиболее короткие из них были вначале строки, а наиболее длинные в конце.
Алгоритм решения задачи:
1. Преобразуем строку в список слов. Для этого следует воспользоваться методом split().
2. Измерим длину получившегося списка. Это значение показывает количество элементов списка, т.е. количество слов.
3. Используя метод пузырька, отсортируем элементы списка по их длине. Во внутреннем цикле сортировки должны сравниваться не значения элементов, а их длина.
4. Создадим пустую строку. В цикле по элементам списка будем добавлять каждое слово в конец этой новой строки, а также добавлять пробел после каждого слова.
|
s = input()
l = s.split()
ln = len(l)
for i in range(ln-1):
for j in range(ln-1-i):
if len(l[j]) > len(l[j+1]):
l[j],l[j+1] = l[j+1],l[j]
s = ''
for i in range(ln):
s += l[i] + ' '
print (s)
Пример работы программы:
ab aaab ba baaaaa a aba
a ab ba aba aaab baaaaa
Функции
Наименьшее общее кратное
Найти наименьшее общее кратное (НОК) пар чисел по формуле НОК = ab / НОД(a,b), где a и b - это натуральные числа, НОД - наибольший общий делитель.
Из условия задачи ясно, чтобы найти НОК, надо сначала найти НОД. Последний можно вычислить, постепенно находя остаток от деления большего числа из пары на меньшее и присваивая остаток переменной, связанной с большим числом. В какой-то момент значение одной из переменных станет равным 0. Когда это произойдет, другая будет содержать НОД. Если неизвестно, какая именно переменная содержит НОД, то можно просто сложить значения обоих переменных.
В коде ниже используется функция для нахождения НОК, которая принимает два числа и возвращает найденное наименьшее общее кратное.
В основной ветке программы функция вызывается в цикле, который завершается, если то, что было введено, нельзя преобразовать к целому. В этом случае генерируется исключение (ошибка) и поток выполнения переходит к ветке except.
def lcm(a,b): m = a*b while a!= 0 and b!= 0: if a > b: a %= b else: b %= a return m // (a+b) while 1: try: x = int(input('a=')) y = int(input('b=')) print ('НОК:',lcm(x,y)) except: breakПример выполнения:
a=67b=54НОК: 3618a=78b=87НОК: 2262a=28b=33НОК: 924a=13b=14НОК: 182a=85b=45НОК: 765a=50b=120НОК: 600a=tФайлы
Создано
2014-02-03
Выбрать из строки числа
Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке.
Следует посимвольно перебирать строку. Если очередной символ цифра, то надо добавить ее в новую строку. Далее проверять символы за ней, и если они тоже цифры, то добавлять их в конец этой новой подстроки из цифр. Когда очередной символ окажется не цифрой, или будет достигнут конец строки, то надо преобразовать строку из цифр в число и добавить в список.
s = input()l = len(s)integ = []i = 0 while i < l: s_int = '' a = s[i] while '0' <= a <= '9': s_int += a i += 1 if i < l: a = s[i] else: break i += 1 if s_int!= '': integ.append(int(s_int)) print (integ)5 dkfj78df 9 8 dkfj8[5, 78, 9, 8, 8]Найти слово по его номеру
В тексте найти слово под определенным номером (например, пятое слово по счету). Вывести на экран его первую букву.
|
В программе ниже переменная count используется, чтобы считать слова, а f - чтобы определять, находимся ли мы внутри очередного слова или началось новое слово.
Если началось новое слово, то счетчик слов увеличивается, и если счетчик равен искомому по номеру слову, то цикл завершается.
s = input()l = len(s)n = int(input("Номер слова: "))count = 0f = 0i = 0 while i < l: if s[i]!= ' ' and f == 0: count += 1 f = 1 if count == n: break elif s[i] == ' ': f = 0 i += 1 print (s[i])Пример выполнения кода:
один два три четы пять шесть Номер слова: 4чОднако с помощью Python решение этой задачи может быть существенно короче:
s = input()l = len(s)n = int(input("Номер слова: "))s = s.split() print (s[n][0])Метод split() без аргумента разбивает строку на слова по пробелу. Выражение s[n][0] извлекает из списка n-ый элемент, а затем берет из сроки первый символ.
Определить длину самого короткого слова в строке
В заданной строке найти самое короткое слово. Слова могут быть разделены пробелами, несколькими пробелами, знаками препинания.
Алгоритм решения задачи:
1. Длина очередного слова будет храниться в переменной w. Вначале присвоим этой переменно 0, т. к. в строке слов может вообще не быть.
2. Длина самого короткого слова будет записана в переменной min_w. Вначале этой переменной присваивается максимально возможная длина слова. Самое длинное слово может быть, если вся строка состоит только из одного слова. Поэтому сначала min_w равна длине строки.
3. Перебираем строку посимвольно в цикле for.
4. Если очередной символ является буквой, то увеличиваем значение w.
5. Иначе проверяем не меньше ли длина только что "измеренного" слова, чем значение min_w. Если это так, то меняем значение min_w на значение w.
6. Также в ветке else (иначе) обнуляем w, т.к. очередное слово закончилось и необходимо будет "измерять" новое.
s = input()
w = 0
min_w = len(s)
for i in s:
if 'a'<=i<='z' or 'A'<=i<='Z' \
or 'а'<=i<='я' or 'А'<=i<='Я':
w += 1
else:
if w < min_w and w!= 0:
min_w = w
w = 0
print (min_w)
Пример работы программы:
Кто сказал мяу?
3
1 what
4
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!