Учим Python. Часть 6(Разбор циклов, функции)
@webware
Привет всем дорогие друзья или просто гости нашего форума! В этой части мы разберем циклы из прошлой части на примере д/з которое я вам задал. Также начнем изучение функций.
Разбор д/з.
Задание 1.
В этом задании вы должны были написать своего очень очень простого чат бота.
Давайте составим алгоритм его работы.
1. Создаем бесконечный цикл.
2. Получаем какое-либо сообщение от пользователя.
3. Ветвлением if-elif-else ищем нуж
ный ответ.
4. Выводим ответ пользователю.
Как мы знаем, цикл выполняется пока заданное условие возвращяет True. Из этого и составляем начало нашего кода
while True:
...
Далее получаем какое-либо сообщение от пользователя.
while True:
msg = input("> ")
И самая огромная часть (3 и 4) if-elif-else.
while True:
msg = input("> ")
if msg == "":
msg = input("> ")
elif msg == "Привет":
print("И тебе привет)")
elif msg == "Codeby":
print("Отличный форум!!!")
...
else:
print("К сожалению бот не нашел ответа ;(")

Можете дополнить его. Например задать имена.
Задание 2.
Те кто справился с этим заданием - молодцы) А теперь разберем самое простое решение.
Алгоритм:
1. Создадим несколько пустых списков.
2. Добавим в нашу программку возможность добавления(товтология) значений.
3. Добавим возможность вывода определенного элемента.
1. Создаем пустые списки.
name = [] fname = [] age = []
2. Сделаем так, чтобы мы могли добавлять значения.
Для этого спросим сначала что будет вводить пользоваталь(имя, фамилию, возраст) а потом само значение.
var1 = input("N(name), F(fname), A(age) --> ")
var2 = input("Значение --> ")
И подставим в нужный список.
if var1 == "N":
name.append(var2)
elif var1 == "F":
fname.append(var2)
elif var1 == "A":
age.append(var2)
else:
print("Не правильный параметр!")
3. Давайте добавим в этот пунк возможность проверки на наличае в бд) Чтоб все знания о списках из прошлой части проверить.
var3 = input("Элемент --> ")
if var3 in name:
print("Данный элемент находится в списке - name\n")
x = name.index(var3)
print("Интекс элемента -- ", x)
elif var3 in fname:
print("Данный элемент находится в списке - fname\n")
x = fname.index(var3)
print("Индекс элемента -- ", x)
elif var3 in age:
print("Данный элемент находится в списке - age\n")
x = age.index(var3)
print("Индекс элемента -- ", x)
else:
print("Нет в базе!!!")
И все вместе получаем
# -*- coding:utf- 8 -*-
name = []
fname = []
age = []
var1 = input("N(name), F(fname), A(age) --> ")
var2 = input("Значение --> ")
if var1 == "N":
name.append(var2)
elif var1 == "F":
fname.append(var2)
elif var1 == "A":
age.append(var2)
else:
print("Не правильный параметр!")
var3 = input("Элемент --> ")
if var3 in name:
print("Данный элемент находится в списке - name\n")
x = name.index(var3)
print("Интекс элемента -- ", x)
elif var3 in fname:
print("Данный элемент находится в списке - fname\n")
x = fname.index(var3)
print("Индекс элемента -- ", x)
elif var3 in age:
print("Данный элемент находится в списке - age\n")
x = age.index(var3)
print("Индекс элемента -- ", x)
else:
print("Нет в базе!!!")

Задание 3.
Самое простое задание. Его даже пояснять не нужно. Но для тех кто не понимает код ниже
while True:
text = input("> ")
listext = list(text)
print(listext[0]*3)

Функции.
Функции предстовляют собой кусок кода, который мы можем использовать во всей нашей программе когда нам это понадобиться.
Чтобы создать функцию используют следующую конструкцию
def function_name(x):
какие-либо действия
x - это параметр функции.
Для начала же разберем функции без параметров. Представим себе, что нам требуется выполнить какие-то действия по выбору. Например выбрать опцию. И при выборе той или иной опции будет задействована определенная функция.
def func():
print("Hi, codeby!")
Мы создали функцию. Но стоит понимать, что на экране не появится надпись "Hi, codeby!" пока мы не вызовим функцию. А вызвать ее очень просто
func()
Нельзя вызывать функцию до определения! Это приведет к ошибке!
По русски вся запись будет выглядеть так
ОПРЕДЕЛИТЬ ФУНКЦИЮ с именем func() и записать в ней следующие действия
ВЫВЕСТИ "Hi, codeby!"
вызвать func()
Переменные которые были определены в функции нельзя использовать в остальном коде!
Т.е. функция из себя представляет своеобразный контейнер с кодом который не выполнится, пока не вызовешь этот самый контейнер.
return - возвращает значение. Используется только в теле функции.
def num():
x = 31
return x
num()
И получаем
31
Например
matan = input("Сложение(S), Вычитание(R) -> ")
def sum():
x = int(input("Enter x -> "))
y = int(input("Enter y -> "))
return x + y
def razn():
x = int(input("Enter x -> "))
y = int(input("Enter y -> "))
return x - y
if matan == "S":
sum()
elif matan == "R":
razn()
else:
print("Error!")
В этом коде у пользователя спрашивают какую матиматическую операцию он хочет провести. И создаются две функции которые спрашивают у пользователя значения x и y. Далее используя return выводят на экран значения.
Также в функциях можно использовать параметры. Параметры будут переданы функции. Например
def matan(x, y):
print(x*y)
matan(2, 3)
И выведет
6
Подробно про функции и параметры функций в следующей части)
Домашнее задание описано в статье