Python Запрос данных

Python Запрос данных надо непременно освоить.

Пламенный привет посетителям этой страницы, пришедшим из социальных сетей, да и всем остальным тоже!

В апреле 2021-го года наблюдал удивительное явление: обильный поток посетителей из 4-х социальных сетей. В связи с этим настоятельно рекомендую всем неоднократно и регулярно посещать сайт rtbsm.ru — там в общих чертах изложена Российская Теннисная Балльная Система Марии (Шараповой).

Приглашаю всех полюбоваться на Фото и Видео красавицы Марии — надеюсь, что Вы поделитесь адресом сайта rtbsm.ru с друзьями и знакомыми.

Главная проблема — известить Марию, чтобы она лично как можно скорее заявила на весь мир о РТБСМ.

Python Запрос данных — необходим для того, чтобы иметь возможность вводить различные свежие данные для последующей обработки программой.

Простейшая альтернатива — ввод данных в текст программы перед отправкой на выполнение.

Привожу информацию со страницы https://pythonchik.ru/osnovy/input-v-python :

Пользовательский ввод (input) в Python

Статья опубликована 08.09.2021 г.
Обновлена 08.11.2023 г.
Александр Попов
125.1 K
3

Обычно программа работает по такой схеме: получает входные данные → обрабатывает их → выдает результат. Ввод может поступать как непосредственно от пользователя через клавиатуру, так и через внешний источник (файл, база данных).

В стандартной библиотеке Python 3 есть встроенная функция input() (в Python 2 это raw_input()), которая отвечает за приём пользовательского ввода. Разберёмся, как она работает.

Чтение ввода с клавиатуры

Функция input([prompt]) отвечает за ввод данных из потока ввода:

s = input()
print(f"Привет, {s}!")

> мир  # тут мы с клавиатуры ввели слово "мир"
> Привет, мир!

В этом примере:

  1. При вызове функции input() выполнение программы приостанавливается до тех пор, пока пользователь не введёт текст на клавиатуре (приложение может ждать бесконечно долго).
  2. После нажатия на Enter, функция input() считывает данные и передаёт их приложению (символ завершения новой строки не учитывается).
  3. Полученные данные присваиваются переменной и используются дальше в программе.

input() всегда возвращает строку:

s = input()
print(type(s))

> 2
> <class 'str'>

Также у input есть необязательный параметр prompt – это подсказка пользователю перед вводом:

name = input("Введите имя: ")
print(f"Привет, {name}!")

> Введите имя: Вася
> Привет, Вася!

Более подробное описание функции из документации:

definput([prompt]):
    """
    Read a string from standard input.  The trailing newline is stripped.
    The prompt string, if given, is printed to standard output without a
    trailing newline before reading input.
    If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
    On *nix systems, readline is used if available.
    """
    pass

Преобразование вводимых данных

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

☝️ Важно: если вы решили преобразовать строку в число, но при этом ввели строку (например: test), возникнет ошибка:

ValueError: invalid literal for int() with base 10: 'test'

На практике такие ошибки нужно обрабатывать через try except. В примере ниже пользователь будет вводить данные до тех пор, пока они успешно не преобразуются в число.

defget_room_number():
    while True:
        try:
            num = int(input("Введите номер комнаты: "))
            return num
        except ValueError:
            print("Вы ввели не число. Повторите ввод")


room_number = get_room_number()
print(f"Комната {room_number} успешно забронирована!")

> Введите номер комнаты: test
> Вы ввели не число. Повторите ввод
> Введите номер комнаты: 13
> Комната 13 успешно забронирована!

Input() → int

Для преобразования в целое число используйте функцию int(). В качестве аргумента передаются данные которые нужно преобразовать, а на выходе получаем целое число:

age_str = input("Введите ваш возраст: ")
age = int(age_str)

print(age)
print(type(age))

> Введите ваш возраст: 21
> 21
> <class 'int'>

То же самое можно сделать в одну строку: age = int(input("Введите ваш возраст: ")).

Input() → float

Если нужно получить число с плавающей точкой (не целое), то его можно получить с помощью функции float().

weight = float(input("Укажите вес (кг): "))

print(weight)
print(type(weight))

> Укажите вес (кг): 10.33
> 10.33
> <class 'float'>

Input() → list (список)

Если в программу вводится информация, которая разделяется пробелами, например, «1 word meow», то ее легко преобразовать в список с помощью метода split(). Он разбивает введенные строки по пробелам и создает список:

list = input().split()

print(list)
print(type(list))

> 1 word meow
> ['1', 'word', 'meow']
> <class 'list'>

Обратите внимание, что каждый элемент списка является строкой. Для преобразования в число, можно использовать int() и цикл for. Например, так:

int_list = []
for element in input().split():
    int_list.append(int(element))

print([type(num) for num in int_list])

> 1 2 3
> [<class 'int'>, <class 'int'>, <class 'int'>]

Ввод в несколько переменных

Если необходимо заполнить одним вводом с клавиатуры сразу несколько переменных, воспользуйтесь распаковкой:

a, b, c = input().split()
print(f"a: {a}, b: {b}, c: {c}")

> test 13 100
> a: test, b: 13, c: 100

В этом примере строка из input() разбивается по пробелу функцией split(). Далее применяется синтаксис распаковки – каждый элемент списка попадает в соответствующую переменную.

Все переменные после распаковки будут строкового типа. Преобразовать их (например в int) можно так:

a, b = [int(s) for s in input().split()]
print(f"type a: {type(a)}, type b: {type(b)}")

> 13 100
> type a: <class 'int'>, typeb: <class 'int'>

☝️ Важно: не забывайте обрабатывать ошибки:

  • если введенных значений больше чем переменных, получите ошибку – ValueError: too many values to unpack (expected 3);
  • если введенных значений меньше чем переменных, получите ошибку – ValueError: not enough values to unpack (expected 3, got 2);
  • если преобразовываете в int, а вводите строку – ValueError: invalid literal for int() with base 10: 'test'.

В этом руководстве вы узнали, как принимать данные от пользователя, введенные с клавиатуры, научились преобразовывать данные из input и обрабатывать исключения.

!…

Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В особо хороших комментариях сохраняю ссылку на сайт автора!

И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Python Запрос данныхПродолжение тут…

_Родник

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.