Программирование на Python от базовых концепций к созданию GUI. Учебное пособие
.pdf
Основы языка Python | 11
Задания для закрепления изученного материала
1.Написать программу для вычисления площади круга. Значение радиуса вводится во время выполнения программы.
2.Написать программу для вычисления площади прямоугольного треугольника. Значения катетов вводятся во время выполнения программы.
3.Написать программу для вычисления площади поверхности куба. Значение стороны вводится во время выполнения программы.
4.Дано двузначное число, найти сумму его цифр.
Например: дано: 65. Ответ: 11.
5.Дано трехзначное число, найти число, полученное при перестановке первой и второй цифры.
Например: дано: 615. Ответ: 165.
Задания для самостоятельной работы
1.Изучить возможности онлайн интерпретатора (компилятора) Python. Например: https://www.programiz.com/
2.Изучить возможности работы с интерпретатором Python для мобильных устройств.
Условный оператор (оператор ветвления)
Оператор ветвления позволяет в зависимости от значения логического выражения выполнить отдельный участок программы или, наоборот, не выполнять его.
Условный оператор имеет следующий формат: if логическое_выражение:
Блок, выполняемый при истинности условия elif логическое_выражение:
Блок, выполняемый при истинности условия else:
Блок, выполняемый, если все условия ложны
Блоки внутри составной инструкции выделяются одинаковым количеством пробелов (четыре пробела). Концом блока является
12 | Раздел 1 |
|
инструкция, перед которой расположено меньшее количество |
|
пробелов. На рисунке 1. изображена блок-схема работы условного |
|
оператора. |
|
|
if |
|
Да |
|
Нет |
|
elif |
|
Да |
|
Нет |
|
elif |
Нет |
Да |
else |
|
Рисунок 1. Блок-схема работы условного оператора |
|
Рассмотрим несколько примеров применения условного оператора. |
|
Пример 1.Проверка числа на четность |
|
number = int(input("Введите число: ")) |
|
if number % 2 == 0: |
|
print(number," - четное число.") |
|
else: |
|
print(number," - нечетное число.") |
|
Пример 2. Определение возрастной группы |
|
age = int(input("Введите ваш возраст: ")) |
|
if age < 0: |
|
print("Ошибка: Возраст не может быть отрицательным.") |
|
Основы языка Python | 13
elif age <= 12:
print("Ребенок") elif age <= 18:
print("Подросток") else:
print("Взрослый")
Пример 3. Расчет площади круга и длины окружности
radius = int(input("Введите радиус: ")) if radius < 0:
print("Ошибка: Радиус не может быть отрицательным.") else:
print("Длина окружности равна: ", 2*3.14*radius)
print("Площадь круга равна: ", 3.14*radius**2)
Пример 4. Расчет итоговой оценки
score = float(input("Введите количество баллов: ")) if score>= 85:
print("Отлично. Ваша оценка - 5!") elif score>= 70:
print("Хорошо. Ваша оценка - 4!") elif score>= 55:
print("Ваша оценка - 3. Стоит повторить материал!") else:
print("Вы не сдали экзамен!!!")
Задания для закрепления изученного материала
1.Написать программу вычисления стоимости покупки с учетом скидки. Скидка в 7% предоставляется, если сумма покупки
больше 500 сомов, в 50 % — если сумма больше 21 000 сомов.
2.Дано трехзначное число, определить, входит ли в него цифра 3.
3.Определить, является ли заданное шестизначное число — счастливым. (Счастливым называют такое шестизначное число, у которого сумма первых трех цифр равна сумме его последних трех цифр).
14 | Раздел 1
Задания для самостоятельной работы
1.Написать программу. Дано четырехзначное целое число. Определить: является ли число палиндромом (перевертышем) с учетом
четырех цифр (например: 2 222,6 116, 2 002 и т. д.);
2.Написать программу. Дано четырехзначное целое число. Определить: верно ли, что это число содержит ровно три одинаковые цифры (например: 6676,4544 и т. д.);
3.Написать программу. Дано четырехзначное целое число. Определить: верно ли, что все четыре цифры числа различны?
Циклические конструкции. Цикл for
Цикл for применяется для перебора элементов последовательности.
Имеет следующий формат:
for Текущий_элемент in Последовательность: Тело_цикла
Где:
Последовательность — объект, поддерживающий механизм итерации. Например, строка, список, кортеж, словарь.
Текущий_элемент — на каждой итерации через этот параметр доступен текущий элемент последовательности или ключ словаря
Тело_цикла — блок, который будет многократно выполнятся.
Для создания последовательности чисел в определенном диапазоне можно использовать функцию range(). Функция range() генерирует последовательность чисел. Имеет три аргумента range(старт, стоп, шаг), при этом первый и третий аргумент может отсутствовать.
start — целое число, начиная с которого должна быть возвращена последовательность целых чисел (по умолчанию равен 0);
stop — целое число, до которого должна быть возвращена последовательность целых чисел. Диапазон целых чисел заканчивается на stop — 1;
Основы языка Python | 15
step (необязательно) — это целочисленное значение, определяющее шаг между каждым целым числом в последовательности (по умолчанию равен 1).
Например следующий программный код, выведет все целые числа от 1 до 100:
for x in range(1,101): print(x)
Пример 1. Вывод числовых последовательностей print("Вывод 5 чисел, начиная с 0.")
for i in range(5): print(i)
#----------
print("Вывод чисел от 3 до 6 (не включая 6).") for i in range(3,6):
print(i)
#----------
print("Вывод чисел от 4 до 10 (не включая 10), с шагом 2.") for i in range(4,10,2):
print(i)
#----------
print("Вывод чисел от 0 до -10 (не включая -10), с шагом -2.") for i in range(0,-10,-2):
print(i)
Пример 2. Перебор в цикле print ("Перебор списка")
my_list=['один','два','три','четыре','пять'] length=len(my_list)
#функция len() определяет длину списка (размер массива) for i in range(0,length):
print(my_list[i])
#---------------
16 | Раздел 1
print("Перебор букв в слове") for s in "Hello":
print(s)
#--------------
print("Перебор элементов списка (массива) со сложением") spisok = [10, 40, 20, 30]
for element in spisok: print(element + 2)
Пример 3. Сумма четных целых чисел от 10 до 30 print("Сумма четных целых чисел от 10 до 30") s=0
for x in range(10,30,2): s+=x;
print("Сумма четных целых чисел от 10 до 30 = ",s)
Пример 4. Нахождение факториала числа.
print("3. Нахождение факториала числа") num = int(input("Введи число: ")) factorial = 1
if num < 0:
print("Для отрицательных чисел факториал не определен") elif num == 0:
print("Факториал 0 равен 1")
else:
for i in range(1,num + 1): factorial = factorial*i
print("Факториал",num,"равен",factorial)
Задания для закрепления изученного материала
1.Напишите программу, которая вычисляет сумму первых n целых положительных чисел. Количество суммируемых чисел должно вводиться во время работы программы.
2.Напишите программу, которая находит количество и сумму целых положительных чисел, кратных 4 и меньших 100.
Основы языка Python | 17
3.Напишите программу, которая находит произведение всех целых чисел от 8 до 15.
Задания для самостоятельной работы
1.Написать программу. Вводится любое произвольное количество чисел. Необходимо посчитать сколько среди них четных чисел.
2.Написать программу. Вводится любое произвольное количество чисел. Необходимо посчитать их сумму и количество нечетных чисел.
Циклические конструкции. Цикл while
Выполнение инструкций в цикле while продолжается до тех пор, пока логическое выражение истинно.
Имеет следующий формат:
Начальное_значение
while Условие: Инструкции Приращение
Последовательность работы цикла:
Переменной-счетчику присваивается начальное значение.
Проверяется условие, если оно истинно, выполняются инструкции внутри цикла, иначе выполнение цикла завершается.
Переменная-счетчик изменяется на величину, указанную в параметре Приращение. (Если Приращение не указано, то цикл будет бесконечным.
Переход в начало цикла
Примеры. Вывод чисел и перебор элементов print('Вывод чисел от 1 до 5')
i=1 |
# Начальное значение |
|
while i<6: |
# |
Условие |
print(i) |
# |
Инструкции |
18 | Раздел 1
i+=1 |
# Приращение (увеличение на один) |
#---------------------- |
|
print('Вывод чисел от 5 до 1') |
|
i=5 |
|
while i: |
|
print(i) |
|
i-=1 |
# Приращение (уменьшение на один) |
#--------------------- |
|
print('Перебор элементов списка (массива)') |
|
x=[1,2,3] |
|
i=0 |
|
c=len(x) #длина списка (массива) |
|
while i<c: |
|
x[i]*=2 |
#умножение каждого элемента на 2 |
i+=1 |
|
print(x) |
|
#-------------------- |
|
print('Вывод чисел от 1 до 5. Использование ПРЕРЫВАНИЯ') i=1
while True: # вариант создания бесконечного цикла
if i>5:
break #оператор прерывания (останавливает работу цикла) print(i)
i+=1
Задания для закрепления изученного материала
1.Необходимо, чтоб программа выводила на экран следующую последовательность: 7 14 21 28 35 42 49 56 63 70 77 84 91 98
2.Организовать беспрерывный ввод чисел с клавиатуры, пока пользователь не введёт 0. После ввода нуля, показать на экран количество чисел, которые были введены, их общую сумму и среднее арифметическое.
3.Необходимо суммировать все нечётные целые числа в диапазоне, который введёт пользователь с клавиатуры.
Основы языка Python | 19
Задания для самостоятельной работы.
1.Напишите программу. Дано число меньше одного миллиона. Определить количество цифр в нем.
2.Дан массив числами, например: [10, 20, 30, 50, 235, 3 000]. Выведите на экран только те числа из массива, которые начинаются на цифру 1, 2 или 5.
3.Дано число n=1000. Делите его на 2 столько раз, пока результат деления не станет меньше 50. Какое число получится? Посчитайте количество итераций, необходимых для этого (итерация — это проход цикла), и запишите его в переменную num.
Бесконечные циклы и прерывание
Бесконечный цикл — это цикл, который продолжает выполняться, пока не будет принудительно прерван. Они могут быть полезны в различных сценариях программирования, но также могут привести к нежелательным последствиям, если их использовать без должного контроля.
Пример бесконечного цикла:
while True:
#код, который будет выполняться бесконечно
ВPython также могут быть использованы бесконечные циклы с использованием других условий, например:
while 1 > 0:
# код, который будет выполняться бесконечно
Для прерывания бесконечных циклов используется оператор break. Он позволяет выйти из цикла при выполнении определенного условия.
Рассмотрим пример использования прерывания: while True:
answer = input("Хотите выйти из цикла? (да/нет): ") if answer.lower() == "да":
break
20 | Раздел 1
else:
|
print("Циклпродолжается...") |
print("Цикл завершен.")
Оператор continue используется для перехода к следующей итерации цикла, минуя оставшуюся часть кода в текущей итерации.
Рассмотрим пример использования оператора continue: for i in range(1, 11):
if i % 2 == 0:
continue # Пропускаем четные числа
print(i)
Этот код выведет на экран числа от 1 до 10, пропуская при этом четные числа.
Рассмотрим пример программы, которая будет выводить на экран все простые числа от 1 до 100. (Простое число — это число, которое делится только на себя и на 1).
# Выводим простые числа от 1 до 100 print("Простые числа от 1 до 100:")
for num in range(2, 101): # ачинаемН с 2, так как 1 не является простым числом
is_prime = True # Предполагаем, что число простое
for i in range(2, num): # Проверяем деление числа на числа от 2 до (num — 1)
if num % i == 0: # слиЕ |
число делится на какое-то число кроме |
|
1 и самого себя, то оно |
не простое |
|
|
is_prime=False |
|
break # Прерываем внутренний цикл, так как уже известно, что число не простое
if is_prime: # Если после проверки число осталось простым, выводим его
print(num)
Эта программа использует вложенные циклы: внешний цикл проходит по числам от 2 до 100, а внутренний цикл проверяет деление каждого числа на числа от 2 до числа — 1. Если число делится
