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

Циклы for и while: как и когда использовать?

21.09.2019, 11:15. Показов 910. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу обьяснить "простыми словами" как и когда использовать эти циклы!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2019, 11:15
Ответы с готовыми решениями:

Когда нужно использовать структуры, когда классы, а когда словарь?
Хеллоу. Не могу понять, когда, что, нужно использовать. Допустим мне нужно получить объект, который имеет список объектов. И...

Как организовать вложенные циклы, когда количество циклов передается как параметр?
Добрый день! Вопрос в заголовке. Может, с налету подкинете идею? А вообще, решаю эту задачку: ...

Задача для школы: Научиться использовать циклы с предусловием while и циклы с постусловием do / while
Научиться использовать циклы с предусловием while и циклы с постусловием do / while языка C # для решения задач. Исследовать работу таких...

6
60 / 86 / 16
Регистрация: 25.03.2019
Сообщений: 235
21.09.2019, 11:51
Когда требуется просто перебрать содержимое, например, списка, используйте цикл for. Он для этого лучше всего приспособлен. Когда требуется изменять счетчик цикла в процессе, то используйте цикл while.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,678
Записей в блоге: 29
21.09.2019, 13:50
vladpankrat, везде и всегда (почти) используй for
while нужен в случае если ты в ходе цикла меняешь какие то условия (список, флаги, переменные, от которых зависит цикл). Кроме того, while подходит для создания вечных циклов. В остальном он медленный и неудобный, отдавай предпочтения for
0
60 / 86 / 16
Регистрация: 25.03.2019
Сообщений: 235
21.09.2019, 14:23
Цитата Сообщение от Welemir1 Посмотреть сообщение
В остальном он медленный
Возможно в каких-то ситуациях это так. Но я сейчас создал список из 30 строк. Одинаковый, для циклов for и while в разных скриптах. И for и while читают его с примерно одинаковой скоростью. То есть, по крайней мере, для небольших списков скорость работы (разница между ними) for и while несущественна.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,678
Записей в блоге: 29
21.09.2019, 15:06
Yuri197, как и чем мерил?
на jupiter notebook даже на 30 есть разница, на 300 уже существенная
0
60 / 86 / 16
Регистрация: 25.03.2019
Сообщений: 235
21.09.2019, 15:27
Цитата Сообщение от Welemir1 Посмотреть сообщение
Yuri197, как и чем мерил?
Командной time.

Смотри сам:

test_94.py:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
 
if __name__ == "__main__":
    items = [
        "item1",
        "item2",
        "item3",
        "item4",
        "item5",
        "item6",
        "item7",
        "item8",
        "item9",
        "item10",
        "item11",
        "item12",
        "item13",
        "item14",
        "item15",
        "item16",
        "item17",
        "item18",
        "item19",
        "item20",
        "item21",
        "item22",
        "item23",
        "item24",
        "item25",
        "item26",
        "item27",
        "item28",
        "item29",
        "item30",
        "item31"
    ]
    len_items = len(items)
    n = 0
    while n < len_items:
        print(items[n])
        n += 1
test_95.py:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
 
 
if __name__ == "__main__":
    items = [
        "item1",
        "item2",
        "item3",
        "item4",
        "item5",
        "item6",
        "item7",
        "item8",
        "item9",
        "item10",
        "item11",
        "item12",
        "item13",
        "item14",
        "item15",
        "item16",
        "item17",
        "item18",
        "item19",
        "item20",
        "item21",
        "item22",
        "item23",
        "item24",
        "item25",
        "item26",
        "item27",
        "item28",
        "item29",
        "item30",
        "item31"
    ]
    for item in items:
        print(item)
Далее вывожу только результат time (чтобы место не занимать):

time ./test_94.py
Code
1
2
3
real    0m0,054s
user    0m0,045s
sys 0m0,009s
time ./test_95.py
Code
1
2
3
real    0m0,053s
user    0m0,042s
sys 0m0,010s
time ./test_94.py
Code
1
2
3
real    0m0,057s
user    0m0,045s
sys 0m0,009s
time ./test_95.py
Code
1
2
3
real    0m0,052s
user    0m0,044s
sys 0m0,008s
time ./test_94.py
Code
1
2
3
real    0m0,051s
user    0m0,042s
sys 0m0,009s
time ./test_95.py
Code
1
2
3
real    0m0,052s
user    0m0,043s
sys 0m0,008s
Специально по 3 раза, чтобы усреднить. В целом, иногда работает быстрее for, иногда while, а в общем примерно одинаково.

А атачменты я не вижу. Не отображает у меня их браузер.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,678
Записей в блоге: 29
21.09.2019, 16:32
Yuri197, я и не думаю оспаривать ваши цифры,у меня на маленьких числах тоже достаточно близкие получились значения. Но мы же с вами понимаем, что для маленьких значений свой вклад могли внести какие то фоновые процессы. Поэтому я всегда стараюсь проверять или на больших объемах значений (от 100_000) или с использованием модуля timeit, который по умолчанию вызывает функцию миллион раз и приводит среднее значение. Так результат более показателен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.09.2019, 16:32
Помогаю со студенческими работами здесь

Как использовать циклы while, for, repeat
Объясните доступным и понятным языком как использовать циклы while, for, repeat. Понять не могу ни как.

Когда стоит использовать класс, а когда лучше обойтись без них?
Когда стоит использовать класс, а когда лучше обойтись без них? Когда следует использовать несколько классов? Вот, например. Программа...

Когда использовать модификатор для перемнной Volatile, а когда synchronized?
Я примерно знаю, для чего они - хотя в книге этому было посвящено немного времени(пришлось искать самостоятельно), но хотелось бы выслушать...

HttpListener. Когда надо использовать BeginGetContext(EndGetContext), а когда GetContext
HttpListener. Когда надо использовать BeginGetContext(EndGetContext), а когда GetContext

Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию?
1)Любезные,скажите когда надо исп. списки инициализации, а когда можно заменить констуктором по умолчанию? 2) правильно ли...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
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, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru