Как мне сделать так, чтобы на этот ввод отвечали только целые числа и отклоненная строка. Это включает в себя .split()

#python #split #integer

Вопрос:

Всем добрый день, я хотел бы спросить об этой проблеме, которая мне нужна, чтобы в результате получались только целые числа, а не строки

Если я введу строку во входные данные.. это приведет к ошибке, и если я поставлю номер, он напечатает номер

пример:

num = int(ввод(«Введите только номер: «)).разделение(«,»)

печать(число)

Комментарии:

1. Ваш пример кода не имеет большого смысла, вы не можете .split() int . Вы можете разделить строку на массив str s, а затем преобразовать их в int , но, честно говоря, я не уверен, что вам здесь нужно.

2. Я пытаюсь разделить int… но это не работает

Ответ №1:

Предполагая , что пользователь вводит данные, разделенные запятыми 7,42,foo,16 , вы можете использовать блок try только для добавления чисел и передачи строк:

 nums = [] user_input = input("Enter a series of numbers separated by commas: ") input_fields = user_input.split(",") for field in input_fields:  try:  num.append(int(field))  except ValueError:  pass for num in nums:  print(str(num))  

Комментарии:

1. возможно ли, сэр, не использовать try и за исключением этой проблемы?

2. К сожалению, все вызовы to input() вернут строку , а все вызовы to int() вернут a ValueError , поэтому невозможно проверить, является ли ввод целым числом, не передавая ошибки в блоке try.

Ответ №2:

Я бы сделал это:

 user_input = input("Enter a series of numbers separated by commas: ") input_fields = user_input.split(",") int_list = [] for i in input_fields:  int_list.append(int(i)) # you may want to check if int() works.