Перейти к основному содержанию
EDU-MMCS
  • В начало
  • Дополнительно
Вы используете гостевой доступ
Вход
В начало
  1. Prog_2
  2. Лабораторная работа №4. Циклы

Лабораторная работа №4. Циклы

Требуемые условия завершения
Открыто с: четверг, 10 октября 2024, 00:00
Срок сдачи: четверг, 17 октября 2024, 00:00

В Python существуют два типа цикличных выражений:

  • Цикл while
  • Цикл for
  1. Цикл while

    Инструкция while в Python повторяет указанный блок кода до тех пор, пока указанное в цикле логическое выражение будет оставаться истинным. Синтаксис цикла while выглядит следующим образом:
while логическое выражение:
    команда_1
    команда_2
    ...
    команда_n

После ключевого слова while указывается условное выражение. Пока это выражение возвращает значение True, будет выполняться блок инструкций, который идет далее.

Все инструкции, которые относятся к циклу while, располагаются на последующих строках и должны иметь отступ от начала строки (4 пробела)

Выход из цикла с помощью break

break — это специальная инструкция в Python, используемая для немедленного выхода из цикла. Когда программа выполняет команду break, она прерывает текущий цикл (будь то for или while) и переходит к инструкции, следующей за циклом. Это полезно, когда нужно остановить выполнение цикла в определённый момент, например, при выполнении условия.

Например:

for i in range(10):
    if i == 5:
        break  # выход из цикла, когда i равно 5
    print(i)

Пример цикла с пользовательским вводом

while True:
    user_input = input("Введите 'exit' для выхода: ")
    if user_input == 'exit':
        break  # выход из цикла, если пользователь ввел 'exit'
    print(f"Вы ввели: {user_input}")

# Этот код будет продолжать запрашивать ввод до тех пор, пока пользователь не введет 'exit'.

Команда continue

continue — это инструкция в Python, используемая для пропуска оставшейся части текущей итерации цикла и перехода к следующей итерации. Это может быть полезно, когда нужно пропустить выполнение определённого кода при выполнении определённого условия.

Пример использования continue в for

for i in range(10):
    if i % 2 == 0:
        continue  # Пропустить четные числа
    print(i)

Пример использования continue в while

count = 0
while count < 5:
    count += 1
    if count == 3:
        continue  # Пропустить выполнение, когда count равно 3
    print(count)

Пример

Программа запрашивает у пользователя целое число и вычисляет факториал.

Код программы:

number = int(input("Введите число: "))
i = 1
factorial = i
while i<=number:
    factorial*=i
    i+=1
print("Факториал числа {0} равен {1}".format(number,factorial))

Пример вывода

Введите число:

5

Факториал числа 5 равен 120

  1. Цикл for

Цикл for в Python обладает способностью перебирать элементы любого комплексного типа данных (например, строки или списка). Синтаксис цикла while выглядит следующим образом:

for int in range():
    команда_1
    команда_2
    ...
    команда_n

Переменной int присваивается значение первого элемента функции range(), после чего выполняются команды. Затем переменной int присваивается следующее по порядку значение и так далее до тех пор, пока не будут перебраны все элементы функции range().

Функция range() является универсальной функцией Python для создания списков (list), содержащих арифметическую прогрессию. Чаще всего она используется в циклах for.

range(старт, стоп, шаг) - так выглядит стандартный вызов функции range() в Python. По умолчанию старт равняется нулю, шаг - единице.

Пример

Найти сумму n элементов следующего ряда чисел: 1, -0.5, 0.25, -0.125,..., n. Количество элементов (n) вводится с клавиатуры. Вывести на экран каждый член ряда и его сумму. Решить задачу с использованием циклической конструкции for.

Решение В данном случае ряд чисел состоит из n элементов, где каждый следующий меньше предыдущего в два раза по модулю и имеет обратный знак. Значит, чтобы получить следующий элемент, надо предыдущий разделить на -2.

Какой-либо переменной надо присвоить значение первого элемента ряда (в данном случае это 1). Далее в цикле добавлять ее значение к переменной, в которой накапливается сумма, после чего присваивать ей значение следующего элемента ряда, разделив текущее значение на -2. Цикл должен выполняться n раз.

Код программы

n = int(input("Введите количество элементов в последовательности: "))
x = 1
s = 0
print(x)
for i in range(n):
    s+=x
    x/=-2
    print(x)
print("Сумма ряда: ", s)

Пример вывода

Введите количество элементов в последовательности:

5

1

-0.5

0.25

-0.125

0.0625

-0.03125

Сумма ряда: 0.6875

Пример

Дано целое число, не меньшее 2. Вывести его наименьший натуральный делитель, отличный от 1.

Решение Для начала введем целое число командой int(input(текст сообщения в кавычках)). Затем зададим переменной i значение 2. Переменная i выполняет роль счетчика. Если задать ей значение 1, то условие задачи не будет выполнено, а результатом будет 1. В цикле while в качестве логического вырадени используется команда n%i, сравниваемая с нулем. Таким образом, если остаток от деления введенного числа на текущее значение i не равно нулю, то счетчик увеличивается на 1, а если равно нулю - цикл заканчивается и командой print() выводится сообщение и значение i.

Код программы

n = int(input("Введите целое число, не меньшее 2\n"))
i = 2
while n%i !=0:
    i+=1
print("Наименьший натуральный делитель: ",i)

Пример вывода

Введите целое число, не меньшее 2

49

Наименьший натуральный делитель: 7

Вложенные циклы

Вложенные циклы в Python — это циклы, которые находятся внутри других циклов. Они позволяют выполнять итерации по многоуровневым структурам данных, например, по двумерным массивам, и полезны при решении задач, требующих перебора всех комбинаций элементов.

Пример

for i in range(3):  # Внешний цикл
    for j in range(2):  # Внутренний цикл
        print(f"i = {i}, j = {j}")

# Вывод:
# i = 0, j = 0
# i = 0, j = 1
# i = 1, j = 0
# i = 1, j = 1
# i = 2, j = 0
# i = 2, j = 1

Задания для самостоятельной работы

1. Дано вещественное число - цена 1 кг конфет. Вывести стоимость 1, 2, ..., 10 кг конфет. Решить задачу, используя циклическую конструкцию for.

Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти:

  • сумму всех чисел последовательности
  • количество всех чисел последовательности

Решить задачу, используя циклическую конструкцию while.

2. Напишите программу, которая спрашивает пользователя, угадал ли он число от 1 до 10. Программа должна продолжаться до тех пор, пока пользователь не введет правильный ответ. Подсказка: загаданное число генерировать случайным образом. В этом поможет следующий код:

import random
number = random.randint(1, 10)
3.Дано целое число N (> 0). Найти сумму N^2 + (N + 1)^2 + (N + 2)^2 + … + (2·N)^2
4. Напишите программу, которая создает и выводит таблицу умножения для чисел от 1 до 10. 
Подсказка: использовать вложенные циклы
Служба поддержки сайта
Вы используете гостевой доступ (Вход)
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика
На платформе Moodle