0 / 0 / 0
Регистрация: 21.09.2019
Сообщений: 2

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

21.09.2019, 11:15. Показов 933. Ответов 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru