Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 30.03.2019
Сообщений: 14

Цикл While

29.03.2023, 18:46. Показов 924. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заранее прошу прощения за совершенно идиотский вопрос.
Смысл в следующем, есть цикл While, более менее разобрался как работает эта шайтан-конструкция в решении задач с числами
пример:

def multiply_numbers_from_range(start, finish):
i = start
sum = 1
while i <= finish:
sum = sum * i
i = i + 1
return sum

print(multiply_numbers_from_range(1, 5))
print(multiply_numbers_from_range(2, 3))
print(multiply_numbers_from_range(6, 6))

Со скрипом, вернее сказать решение пришло по принципу "Как то получилось и все работает"

Более менее понял как работает решение задачи на построение слова в обратном порядке
пример:

def print_reversed_word_by_symbol(name):
i = 1
while i <= len(name[::-1]):
print(name[-i])
i = i + 1

name = 'Defenders'

print_reversed_word_by_symbol(name)

Со вторым примером получилось лучше, чем с первым, всю функцию написал сам, без подгона значений переменных в решении "учителя", поэтому сам понимаю логику (Ну, в общем и целом)

Собственно вопрос в следующем - как реализовать функцию, которая будет просто писать текст в том виде, в котором он будет хранится в переменной, другими словами, как через функцию с "while" добиться эквивалентного print('Какой-то текст') результата?

Пробую действовать следующим образом:

def ex_fnc(text):
result = ''
index = 0
while index >= len(text):
result = result + text[index]
index = index + 1
return result

print(ex_fnc('Example'))

По логике в голове, пытаюсь строить систему, где :
result = '' это нейтральный элемент для строкового параметра,
index = 0 переменная, значение "0", соответствует первому элементу по индексу
while index >= len(text) цикл, прерывается, когда значение переменной "index" будет больше, либо равно общему значению символов переменной "text"
result = result + text[index] по логике должно присваивать значение переменной "result" каждый цикл и значение это равно - нейтральный элемент + символ по индексу переменной text
index = index + 1 увеличивает значение переменной "index" на единицу, каждый цикл
return result возвращает полученный в результате каждого цикла элемент
print(ex_fnc('Example') собственно выводит на консоли результат функции ex_fnc(), с заложенным в нее значением 'Example'

Однако, в итоге на данный момент я слишком глуп, что бы понять что я делаю не правильно и почему все это не работает.
Я знаю что данный вопрос по меркам этой платформы это все равно, что постучать с другой стороны дна, но все же...
Готов принять любые, даже самые непристойные оскорбления в свой адрес, только пожалуйста, ткните носом, что бы понять, как это должно работать правильно. Желательно простым языком уровня 0.2\0.3, я знаю, что реализовать данную задачу, можно множеством вариантов, однако, я ищу наиболее примитивный из них, что бы понять как это работает в начальном виде и уже от этого строить логику других функций в голове, при решении других задач.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2023, 18:46
Ответы с готовыми решениями:

Цикл: Используя цикл while, выведите на экран для числа 2 его степени от 0 до 20
Используя цикл while, выведите на экран для числа 2 его степени от 0 до 20. Возведение в степень в Python обозначается как **. Фрагмент...

Начать вложенный цикл не с первого элемента и по условию вернуться в основной цикл
Добрый день. На самом деле, проблема чуть шире, чем в названии топика. Есть цикл, в котором идёт перебор массива. Внутри цикла есть...

Цикл: Написать программу которая находит минимальное значение в списке через цикл for...
Написать программу которая находит минимальное значение в списке через цикл for, то есть первое значение в списке принимается за...

3
 Аватар для Semen-Semenich
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,300
29.03.2023, 19:16
Лучший ответ Сообщение было отмечено Satain как решение

Решение

Python
1
while index >= len(text):
а что по вашему больше 0 или 7 ? цикл работает пока условие истинно. но
>>> 0 > 7
False
так что работать нечему

Добавлено через 2 минуты
еще один момент который даст ошибку ( и тут куча таких вопросов) индексы начинаются с 0 поэтому конечное значение всегда меньше длины последовательности на единицу
2
0 / 0 / 0
Регистрация: 30.03.2019
Сообщений: 14
30.03.2023, 00:19  [ТС]
Значит я изначально неправильно строю логику в голове, прежде чем писать уравнение...

def ex_fnc(text):
result = ''
index = 0
while index < len(text):
result = result + text[index]
index = index + 1
return result

print(ex_fnc('Example'))

Спасибо вам за ответ. "Куча подобных вопросов" в основном возникает из-за отсутствия понимания логики в построении всей функции, казалось бы, все совсем примитивно, цикл будет выполняться пока переменная "index" будет меньше значения функции len(date) и остановится в том случае, если значение будет больше. Я же логически строю функцию исходя из того, что, чтобы прекратить цикл, необходимо, чтобы переменная "index" была больше или равна значению функции len(text), при этом логически не учитываю, что значение переменной на старте не может быть больше значения результата функции, ошибка идиотская согласен. Зачастую в этом и вопрос, в правильном объяснении примитивной логики, как правило начальное обучение самостоятельно, приводит человека к нахождению большого количества информации в которой он не совсем разбирается. Что же касается обучения по каким либо курсам... например code-basics, то тут можно найти большое количество стартовой информации, но зачастую ее сложно понять человеку, который не может с ходу ее правильно логически воспроизвести и приводит к периодическим тупикам, а дальше, к поискам решения этого тупика на других ресурсах. Каждого к изучению данного предмета, приводят свои собственные мотивы.
В любом случае еще раз спасибо за ответ и простите за демагогию.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
30.03.2023, 08:52
Satain, откройте уже для себя выделение кода в ответе - кнопка пайтон
откройте для себя отладчик - для таких мелких вопросов на вба немного получше отладчик....чем в чайпарме, может где в сети есть вба подобный отладчик для пайтона - не знаю....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2023, 08:52
Помогаю со студенческими работами здесь

Почему не работает цикл for in range . То есть он не повторяет вложенный в него цикл while
import random res = 0 ore = 0 for i in range(10): while res != 3 and ore != 3: coin = random.randint(0, 1) ...

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать учесть особенности получения квадратного...

Написать цикл for, который выводит на экран в столбец числа от 0.3 до 2.7 с шагом 0.2. Переписать этот цикл в цикл while
Пожалуйста помогите с задачами 1.Написать цикл for, который выводит на экран в столбец числа от 0.3 до 2.7 с шагом 0.2. Переписать этот...

Вычислить и вывести сумму чётных целых чисел в интервале от 1 до n: 1) цикл «ДО» 2) цикл «ПОКА» 3) цикл «ДЛЯ»
Вычислить и вывести сумму чётных целых чисел в интервале от 1 до n: 1. цикл «ДО» 2. цикл «ПОКА» 3. цикл «ДЛЯ»

необходимо на паскале написать три программы ( цикл с параметром, цикл с постусловием и цикл с предусловием)
Помогите пожалуйста!!! необходимо на паскале написать три программы ( цикл с параметром, цикл с постусловием и цикл с предусловием). Очень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru