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}!") > мир # тут мы с клавиатуры ввели слово "мир" > Привет, мир!
В этом примере:
- При вызове функции
input()
выполнение программы приостанавливается до тех пор, пока пользователь не введёт текст на клавиатуре (приложение может ждать бесконечно долго).- После нажатия на
Enter
, функцияinput()
считывает данные и передаёт их приложению (символ завершения новой строки не учитывается).- Полученные данные присваиваются переменной и используются дальше в программе.
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 и обрабатывать исключения.
…
!…
Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В особо хороших комментариях сохраняю ссылку на сайт автора!
И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Продолжение тут…