Найти - Пользователи
Полная версия: try excert не все читается ПОЧЕМУ?
Начало » Центр помощи » try excert не все читается ПОЧЕМУ?
1
sssssaaaaabbbbb
здравствуйте, подскажите пожалуйста, почему 4 и 5 тут не читаются

а задача вообще такая строку перевести в список

sssssaaaaabbbbb
ВОт подробный код ВСЕ СДЕЛАЛ

Пройдя по символам строки, переведите строку в список.

string = ''
res = [element.strip("“) for element in string.split(”, ")]
print(res)
x=
for i in res:
x.append(int(i))
print(x)
sssssaaaaabbbbb
вот код
xam1816
sssssaaaaabbbbb
переведите строку в список.
 my_str = 'строка'
my_list = list(my_str)
print(my_list)
PEHDOM
sssssaaaaabbbbb
а задача вообще такая строку перевести в список…
Пройдя по символам строки, переведите строку в список.
что должно быть в списке? Какие входные данные?
[12, 45]
или
['1', '2', ',', ' ', '4', '5']
или
[1, 2, ',', ' ', 4, 5]
или еще какие варинты? потому как у вас в разных постах разные входные данные, и ХЗ что должно выйти в конце.
Вам нужно чтото типа такого?:
 from ast import literal_eval
in_str = '[12, 45]'
result = literal_eval(in_str)
print(result, type(result))
>>>
[12, 45] <class 'list'>
sssssaaaaabbbbb
Сп
xam1816
Спасибо Большое, я сделал
sssssaaaaabbbbb
PEHDOM
Спасбо БОЛЬШОЕ, Я сделал
py.user.next
sssssaaaaabbbbb
здравствуйте, подскажите пожалуйста, почему 4 и 5 тут не читаются
Потому что у тебя except неконкретный. Сначала ты сделал except, который реагирует на нечисловые данные, которые приводятся к int. И сначала всё работало. Но потом у тебя объект в d поменял свой тип со str на int, так как ты в d записал 0. Потом на четвёрке ты к этому нулю в d стал прибавлять строку и из-за этого получил совершенно другое исключение. А except, так как он неконкретный, отловил это совершенно другое исключение и подумал, что ты получил не число.

  
>>> int('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'
>>> 0 + 'a'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>>

Смотри, когда ты приводишь строку к int, ты получаешь ValueError, а когда ты прибавляешь строку к целому числу, ты получаешь TypeError.

Если бы ты сделал except конкретным, то ты бы с этой проблемой не столкнулся.

  
>>> try:
...     int('a')
... except ValueError:
...     print('It\'s not a number')
... 
It's not a number
>>>
>>> try:
...     0 + 'a'
... except ValueError:
...     print('It\'s not a number')
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB