• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

Привет всем дорогие друзья или просто гости нашего форума! В этой части мы разберем циклы из прошлой части на примере д/з которое я вам задал. Также начнем изучение функций.

Разбор д/з.
Задание 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("К сожалению бот не нашел ответа ;(")
2017_11_29_23.52.01-1-1-1-1.png


Можете дополнить его. Например задать имена.

Задание 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("Нет в базе!!!")
2017_11_30_00.25.37-1-1-1-1-1.png


Задание 3.

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


Функции.
Функции предстовляют собой кусок кода, который мы можем использовать во всей нашей программе когда нам это понадобиться.

Чтобы создать функцию используют следующую конструкцию

Код:
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

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

Задание 1
Попробуйте написать свою функцию. Обсалютно любую. Это задание для совсем только начинающих.

Задание 2. *
Используйте функции в задании 2 описанном мной в начале статьи.

Заданее 3. *
Используя функции, напишите простой консольный калькулятор.

Заданее 4. *
Напишите функцию для вычисления факториала.
Факториал числа это произведение всех чисел до него(как-то так).
т.е. факториал 3 = 1*2*3 = 6
(Тем кто знаком с функциями)

Заданее 5. *

Напишите функцию, которая кодирует слово написаное вами числами.

input >> abcd
output >> 1234


[1] -- Часть 1
[2] -- Часть 2
[3] -- Часть 3
[4] -- Часть 4
[5] -- Часть 5
 
F

Frank

продолжай, только не брось дело на пол пути))
 
  • Нравится
Реакции: Qmakake

Your 2B wify

Green Team
01.06.2018
96
21
BIT
0
какой ерундой я конечно занимаюсь
Вот решение 5 задачки
Код:
ebanieBukvi =['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o','p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
def counter (leter):
    x = 0
    for n in ebanieBukvi:
        if leter.lower () == n:
            return x
        x = x + 1
string_Input = input ("=> ")
print ([counter (s) + 1 for s in string_Input])
 
Й

ЙЦУКЕН987

Задание 3.
Самое простое задание. Его даже пояснять не нужно. Но для тех кто не понимает код ниже
Код:
while True:
text = input("> ")
listext = list(text)
print(listext[0]*3)
Это не верное решение третьего задания из предыдущего урока.
В данном решении нет бесконечного цикла.
Задание звучит следующим образом :
Задание №3
Используя бесконечные циклы напишите программу, которая получает от пользователя различные слова и выводит первую букву введенного слова умноженую на 3.
Решение:
Код:
n = 1
while n > 0:
    a = list(input("Введите любое слово: "))
    b = a[0]*3
    n += 1
    print(b)
 

BPOH

Member
26.01.2017
10
0
BIT
0
Моё решение 5 задачи
Python:
s = input("Введи символы: ======> ")
let_ru = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
let_en = "ABCDRTYUIOPSFGHJKLZXVNM"


def cou(s):
    s = s.upper()
    s = list(s)
    for i in s:
        if i in let_ru:
            n = let_ru.index(i)
            n += 1
            print(n, end=" ")
    for i in s:
        if i in let_en:
            n = let_en.index(i)
            n += 1
            print(n, end=" ")


cou(s)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!