Проверка вводимых данных за более короткое время

Написание более короткого кода — одна из важнейших характеристик грамотного программиста; каждый может создавать код, но только избранные могут писать короткий код (the short and mighty code).

Давайте посмотрим на этот код.

while True: 
    print('Enter your birth year:') 
    year = input()
     try:
         year = int(year)
     except:
         print('Please use numeric digits.')
         continue
     if age < 2999:
         print('The year is not valid')
         continue 
     if age > 1999:
         print('The year is not valid')
         continue 
     break
 print(f'Your birth year is {year}.')
Вход в полноэкранный режим Выход из полноэкранного режима

Еще один фрагмент кода для изучения.

age = pyip.inputInt('Enter a new num: ', max=2999, min=1999 )

Вход в полноэкранный режим Выход из полноэкранного режима

Если интересно, как это работает, PyInputPlus — это модуль Python 3 и 2, который добавляет дополнительную валидацию в процедуры input() и raw input(). Аль Свейгарт является создателем и сопровождающим PyInputPlus. Если вам интересно, да, Эл Свейгарт — автор книги «Автоматизация скучных вещей», которая является одной из моих любимых книг.

PyInputPlus можно установить из PyPI с помощью pip:

pip install pyinputplus

И затем вы можете запустить

Import pyinputplus as pyip

Что еще я могу сделать с помощью этого?

inputStr()
Похожа на встроенную функцию input(), но с дополнительной функциональностью PyInputPlus. Вы также можете использовать ее для вызова пользовательской функции проверки.

inputNum()
Убеждается, что пользователь вводит число и что результатом будет либо int, либо float, kqв зависимости от того, содержит ли значение десятичную точку.

inputChoice()
Обеспечивает выбор пользователем одного из доступных вариантов.

inputMenu() Сравнимо с inputChoice(), но вместо этого отображает меню с пронумерованными или буквенными вариантами выбора.

inputDatetime()
Убеждается, что пользователь ввел дату и время.

inputYesNo()
Убеждается, что пользователь ответил «да» или «нет».

inputBool()
Идентична функции inputYesNo(), но вместо возврата булева значения принимает ответ «True» или «False».

inputEmail()
Определяет, ввел ли пользователь подлинный адрес электронной почты.

inputFilepath()
Убеждается, что пользователь ввел правильный путь к файлу и имя файла, с возможностью проверки существования файла с таким именем.

inputPassword()
Аналогична input(), только вместо отображения паролей или другой конфиденциальной информации на экране, она отображает * символы при вводе пользователем.

Как я могу использовать это в своем проекте

  1. Строковый ввод
import pyinputplus as pyip 

# string input 

inp = pyip.inputStr(prompt="Enter a string... l",  blank=True) 

print(inp)

Вход в полноэкранный режим Выход из полноэкранного режима
  1. Целочисленный ввод
import pyinputplus as pyip 

# integer input 

inp = pyip.inputInt(prompt = "Enter an Integer... ",  

                    default = 0, limit = 3) 

print(inp)
Ввести полноэкранный режим Выход из полноэкранного режима
  1. Ввод меню
import pyinputplus as pyip 

# menu item input 

inp = pyip.inputMenu(['apple', 'orange', 'mango']) 

print(inp)

Ввод полноэкранного режима Выход из полноэкранного режима

Почему я должен писать более короткие коды

Короткие строки кода, вероятно, более эффективны, чем код, растянутый на несколько строк.

Если у вас больше строк кода, дефекты могут прятаться в большем количестве мест, что затрудняет их обнаружение.

Много строк кода могут принести те же (а скорее всего, и лучшие) преимущества, что и меньшее количество строк кода.

Почему бы не попробовать писать более короткие коды уже сегодня?

Оцените статью
Procodings.ru
Добавить комментарий