#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()
вернут строку , а все вызовы toint()
вернут aValueError
, поэтому невозможно проверить, является ли ввод целым числом, не передавая ошибки в блоке 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.