Учим Python. Часть 6(Разбор циклов, функции)

Учим Python. Часть 6(Разбор циклов, функции)

@webware

t.me/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

Подробно про функции и параметры функций в следующей части) 

Домашнее задание описано в статье

Источник codeby.net

Report Page