Python3 7. Инструкция in,цикл while,replace(),исключения

Тема в разделе "Python", создана пользователем gx6060, 9 ноя 2016.

Метки:
  1. gx6060

    gx6060 Python

    Репутация:
    0
    Регистрация:
    21 сен 2016
    Сообщения:
    38
    Симпатии:
    48
    Инструкция in

    Служит для проверки членства объекта , инструкция возвращает два значения "True" если элемент является членом или "False" если нет.
    Использование инструкции in в цикле for:
    Код (Python):
    str_list = ["one", "two", "three", "four", "five"]
    for elem in str_list:
        if elem == "one"
             print("one found")
    Данный пример хорош но слишком медлителен если элементов в списке очень много, более быстрый способ использовать инструкцию in непосредственно к самому списку.
    Код (Python):
    str_list = ["one", "two", "three", "four", "five"]
    one_found = "one" in str_list
    # вернет значение "True" так как элемент "one" есть в списке
    six_found = "six" in str_list
    # вернет "False" так как элемента "six" нет в списке
    Присвоение переменной среза списка
    Код (Python):
    list_slice = str_list[1:4]
    list_slice_2 = str_list[3:]  
    Метод replace()

    Метод replace() возвращает копию строки с указанными изменениями, метод принимает 2 аргумента то что необходимо заменить и то чем необходимо заменить
    Код (Python):
    sample_string = "my,name,is,Shawn"
    sample_string = sample_string.replace(",", " ") # замена запятых пробелами
    print(sample_string)
    "my name is Shawn"

    Цикл while

    Цикл while будет работать пока условие истинно , условием может быть любое ненулевое число и не пустое значение
    Код (Python):
    while 1:
          print("hello") # простейший бесконечный цикл
    цикл будет работать пока x меньше 10:
    Код (Python):
    x = 0
    while x < 10:
        x = x + 1
        print(x)
    условный оператор if в цикле while:
    Код (Python):
    state = True
    count = 1
    while state:
        count += 1
        if count > 1000:
            print("Счетчик достиг тысячи")
            state = False
    Оператор continue
    continue используется в циклах для игнорирования части кода и запуска итерации по новой:
    Код (Python):
    #! /usr/bin/python3
    while True:
        user_input = int(input("введите число "))
        if user_input < 10:
            print("число меньше 10")
            print("введите другое число")
            continue
        if user_input > 100:
            print("ваше число больше 100")
    Оператор break
    используется для прерывания дальнейшей итерации кода или же для выхода из цикла:
    Код (Python):
    #! /usr/bin/python3
    while True:
        user_input = int(input("введите число "))
        if user_input < 10:
            print("число меньше 10")
            print("введите другое число")
            continue
        if user_input > 100:
            print("ваше число больше 100")
            break
    print("Выход из цикла")
    Обработка исключений try/except/finally + else
    Что бы не прерывать выполнение вашего кода с ошибкой , в Python существует обработка исключений
    оператор try выполняет код который находитс между try и except если исключение не возникло то блок
    except пропускается
    очень похоже на условный оператор if с необязательными частями elif и else
    если возникло исключение то выполняется except с указанным исключением
    finally выполняется в любом случае
    else выпоняется если исключение не возникло
    BaseException - базовое исключение, от которого берут начало все остальные.

    SystemExit - исключение функции sys.exit при выходе из программы.
    KeyboardInterrupt - при прерывании программы пользователем сочетанием клавиш Ctrl+C
    GeneratorExit - порождается при вызове метода close объекта generator.
    Exception - а вот тут уже заканчиваются полностью системные исключения (которые лучше не трогать) и начинаются обыкновенные, с которыми можно работать.

    StopIteration - порождается встроенной функцией next, если в итераторе больше нет элементов.
    ArithmeticError - арифметическая ошибка.

    FloatingPointError - порождается при неудачном выполнении операции с плавающей запятой. На практике встречается нечасто.
    OverflowError - возникает, когда результат арифметической операции слишком велик для представления. Не появляется при обычной работе с целыми числами (так как python поддерживает длинные числа), но может возникать в некоторых других случаях.
    ZeroDivisionError - деление на ноль.
    AssertionError - выражение в функции assert ложно.
    AttributeError - объект не имеет данного атрибута (значения или метода).
    BufferError - операция, связанная с буфером, не может быть выполнена.
    EOFError - функция наткнулась на конец файла и не смогла прочитать то, что хотела.
    ImportError - не удалось импортирование модуля или его атрибута.
    LookupError - некорректный индекс или ключ.

    IndexError - индекс не входит в диапазон элементов.
    KeyError - несуществующий ключ (в
    словаре, множестве или другом объекте).
    MemoryError - недостаточно памяти.
    NameError - не найдено переменной с таким именем.

    UnboundLocalError - сделана ссылка на локальную переменную в
    функции, но переменная не определена ранее.
    OSError - ошибка, связанная с системой.

    BlockingIOError
    ChildProcessError - неудача при операции с дочерним процессом.
    ConnectionError - базовый класс для исключений, связанных с подключениями.
    BrokenPipeError
    ConnectionAbortedError
    ConnectionRefusedError
    ConnectionResetError
    FileExistsError - попытка создания файла или директории, которая уже существует.
    FileNotFoundError - файл или директория не существует.
    InterruptedError - системный вызов прерван входящим сигналом.
    IsADirectoryError - ожидался файл, но это директория.
    NotADirectoryError - ожидалась директория, но это файл.
    PermissionError - не хватает прав доступа.
    ProcessLookupError - указанного процесса не существует.
    TimeoutError - закончилось время ожидания.
    ReferenceError - попытка доступа к атрибуту со слабой ссылкой.
    RuntimeError - возникает, когда исключение не попадает ни под одну из других категорий.
    NotImplementedError - возникает, когда абстрактные методы класса требуют переопределения в дочерних классах.
    SyntaxError - синтаксическая ошибка.

    IndentationError - неправильные отступы.
    TabError - смешивание в отступах табуляции и пробелов.
    SystemError - внутренняя ошибка.
    TypeError - операция применена к объекту несоответствующего типа.
    ValueError - функция получает аргумент правильного типа, но некорректного значения.
    UnicodeError - ошибка, связанная с кодированием / раскодированием unicode в строках.

    UnicodeEncodeError - исключение, связанное с кодированием unicode.
    UnicodeDecodeError - исключение, связанное с декодированием unicode.
    UnicodeTranslateError - исключение, связанное с переводом unicode.
    Warning - предупреждение.
    Код (Python):
    #! /usr/bin/python3

    import random                                                        # импорт модуля


    print("Загадано число от 0 до 10")
    count = 1                                                            # счетчик кол-ва попыток
    fail_try = 0                                                        # кол-во ошибок
    win_num = random.randint(0, 10)                                        # выйграшное число случайно выбирается от 0 до 10
    while True:
        try:                                                            # оператор
            num = int(input("Введите ваше число "))                        # запрос у пользователя ввести число
            if num > 10:                                                # если число больше 10
                print("Число должно быть не больше 10")                    # вывод сообщения юзеру
                continue                                                # итерация начинается с начала игнорируя остальной код
            if win_num == num:                                            # если юзер угадывает число
                print("Поздравляем вы выйграли")
                print("Вы угадали число за " + str(count) + " раз(а)")  
                input("Нажмите Enter для выхода")                      
                break                                                    # прерывает выполнение кода
            else:
                if win_num != num:                                      
                    if win_num > num:
                        print("Вы не угадали")
                        print("Выйграшное число больше чем вы ввели")
                    elif win_num < num:
                        print("Вы не угадали")
                        print("Выйграшное число меньше чем вы ввели")
                    fail_try += 1                                        # после каждого фейла +1
                    count += 1                                            # счетчик попыток
                    if fail_try == 3:                                    # если 3 раза число не верно
                        win_num = random.randint(0, 10)                    # выйграшное число изменяется
                        fail_try = 0                                    # счетчик фейлов становится 0
                        print("Выйграшное число изменилось")
        except ValueError as err:                                        # обработка исключения неправильного ввода
            print("Вы ввели не целое число")                          
        else:                                                            # выполняется если нет исключений
            print("Код работает без проблем")
        finally:
            print("эта часть всегда будет выполнятся")                    # выполняется всегда
    to be continued...
    если у вас есть замечания или есть чем дополнить статьи , буду признателен за вашу помощь
     
    Vander и WebWare Team нравится это.
  2. MSSERG

    MSSERG New Member

    Репутация:
    0
    Регистрация:
    17 окт 2016
    Сообщения:
    2
    Симпатии:
    0
    шикарные статэйки, всё так коротко и по делу, аффтор красава)

    блин... это последняя статэйка как я понял... потратил пол часа, повторил то что знаю))

    - когда новые статейки выйдут?
     
    #2 MSSERG, 5 дек 2016
    Последнее редактирование модератором: 5 дек 2016
  3. ujif

    ujif New Member

    Репутация:
    0
    Регистрация:
    31 май 2017
    Сообщения:
    3
    Симпатии:
    0
    боюсь спросить и как же это все вернет true или false ... функцию какую=то надо дописать
    которая это все вернет, а так только пустое место после выполнения проги получается
    --- Добавлено 5 июн 2017. Первое сообщение размещено 5 июн 2017 ---
    здесь возвращает ошибку
     
  4. Vander

    Vander Супер-модератор
    Команда форума Grey Team

    Репутация:
    3
    Регистрация:
    16 янв 2016
    Сообщения:
    833
    Симпатии:
    1.656
    Автор, забыл добавить функцию print, можно ее добавить руками, либо обратиься непосредственно к переменной.

    Не указано двоеточие, после условия
     
  5. ujif

    ujif New Member

    Репутация:
    0
    Регистрация:
    31 май 2017
    Сообщения:
    3
    Симпатии:
    0
    str_list = ["one", "two", "three", "four", "five"]
    for elem in str_list
    if elem == "one"
    print("one found")
    в каком месте должно быть двоеточие ? ставил двоеточие и после условия - ошибку кажет
     
  6. chokopai

    chokopai Member

    Репутация:
    0
    Регистрация:
    10 окт 2016
    Сообщения:
    6
    Симпатии:
    0
    Код (Text):
    str_list = ["one", "two", "three", "four", "five"]

    for elem in str_list:
        if elem == "one":
                print("one found")
     
    вот так двоеточие ,и про отступы тоже не надо забывать..
     
  7. ujif

    ujif New Member

    Репутация:
    0
    Регистрация:
    31 май 2017
    Сообщения:
    3
    Симпатии:
    0
    после этой строки идет красная полоса а внизу
    " SyntaxError: multiple statements found while compiling a single statement "
    может IDLE имеет значение , делаю в python 3.6
    --- Добавлено 14 июн 2017. Первое сообщение размещено 6 июн 2017 ---
    спасибо за поддержку всем кто ответил мне
     
  8. gx6060

    gx6060 Python

    Репутация:
    0
    Регистрация:
    21 сен 2016
    Сообщения:
    38
    Симпатии:
    48
    Python 3.6.1
     

    Вложения:

    #8 gx6060, 14 июн 2017
    Последнее редактирование: 14 июн 2017
    Vander нравится это.
  9. Vander

    Vander Супер-модератор
    Команда форума Grey Team

    Репутация:
    3
    Регистрация:
    16 янв 2016
    Сообщения:
    833
    Симпатии:
    1.656
    Пиши еще)
     
  10. gx6060

    gx6060 Python

    Репутация:
    0
    Регистрация:
    21 сен 2016
    Сообщения:
    38
    Симпатии:
    48
    обязательно дружище) , только разгребу немного бардак
     
    Vander нравится это.
  11. Vander

    Vander Супер-модератор
    Команда форума Grey Team

    Репутация:
    3
    Регистрация:
    16 янв 2016
    Сообщения:
    833
    Симпатии:
    1.656
    Ждемссс)
     
Загрузка...
Похожие Темы - Python3 Инструкция цикл
  1. gx6060
    Ответов:
    6
    Просмотров:
    1.618
  2. gx6060
    Ответов:
    2
    Просмотров:
    1.775
  3. gx6060
    Ответов:
    2
    Просмотров:
    795
  4. gx6060
    Ответов:
    0
    Просмотров:
    851
  5. gx6060
    Ответов:
    2
    Просмотров:
    949

Поделиться этой страницей