Сочетание input
с другими функциями почти всегда делает ваш код сложнее, чем нужно. Сначала получите ввод, обработайте пустой ввод, а затем весь остальной код можно продолжить, предполагая, что ввод не пуст. Как правило, ввод обрабатывается в 3 этапа: получение ввода, проверка ввода и с использованием ввода.
В следующемкаждый блок кода либо проверяет ожидаемое свойство, либо выходит из программы с сообщением об ошибке.
# Get a non-empty input
data = input("Enter a comma-separate list of integers: ") # Get arr
if not data: # Validate arr, part 1
print("No data")
sys.exit(1)
# Split the comma-separated input into integers
arr = data.split(",")
try:
arr = [int(x) for x in arr] # Validate arr, part 2
except ValueError:
print("Non-integer data found in {}".format(data))
sys.exit(1)
# Get the search term
data = input("Enter the number to search: ") # Get n
try:
n = int(data) # Validate int
except ValueError:
print("Non-integer search term: {}".format(data))
sys.exit(1)
# Use arr and n
status, i = binarysearch(arr, n)
if status:
print("Found element {}".format(n))
else:
print("Not Found!!!")