Operacja na przyjętych liczbach (zamiana string na int)

0

Cześć mam problem z operacją na przyjetych liczbach, które są przymowane jako string, po wklepaniu "int (input())" wyskakuje, że "TypeError: 'int' object is not iterable"

(q,w,e,r,t,y,u,i,o,p,a)=input()
liczby=[q,w,e,r,t,y,u,i,o,p,a]
print (liczby)
(suma)=q*5+w*5+e*5
print (suma)

Jakieś pomysły?

0

http://ideone.com/A9OiTd (akurat ostatni przykładzik jaki pisałem powinien ci pomóc).

1

odpowiednik twojego kodu

>>> list("039843084984")
['0', '3', '9', '8', '4', '3', '0', '8', '4', '9', '8', '4']
>>> list(map(int, list("039843084984")))
[0, 3, 9, 8, 4, 3, 0, 8, 4, 9, 8, 4]
>>> liczby = list(map(int, list("039843084984")))
>>> liczby
[0, 3, 9, 8, 4, 3, 0, 8, 4, 9, 8, 4]
>>> liczby[:3]
[0, 3, 9]
>>> sum(liczby[:3] * 5)
60
0

Używanie funkcji input w python2.7 to ryzykowna sprawa. Python wówczas stara się rozpoznać typ wartości jaki ma zwrócić:

Equivalent to eval(raw_input(prompt)).

This function does not catch user errors. If the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation.

If the readline module was loaded, then input() will use it to provide elaborate line editing and history features.

Consider using the raw_input() function for general input from users.

Źródło: https://docs.python.org/2/library/functions.html#input

Przykład:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = input()
2.7
>>> type(a)
<type 'float'>
>>> b = input()
2
>>> type(b)
<type 'int'>
>>> c = input()
2, 8, 9, 10
>>> type(c)
<type 'tuple'>

Na twoim miejscu użyłbym funkcji raw_input:

line = raw_input()
tokens = line.split()
numbers = [int(token) for token in tokens]
q,w,e,r,t,y,u,i,o,p,a = numbers
0

Pisze w 3, więc nadal mam problemy z tą błachostką, nie ma jakiegoś sposobu by zamienić jakoś wszystkie wczytane zmiene na int?
Używając listy, nadal nie ma pożądanego efektu.

Nie było tematu ;)

(suma)=int(q)*5+int(w)*5+int(e)*5
0

Przecież dostałeś odpowiedź od @pyholic, wystarczy zmienić raw_input na input.

0
bogdans napisał(a):

Przecież dostałeś odpowiedź od @pyholic, wystarczy zmienić raw_input na input.

Gdzie ja w kodzie mam raw_input?

0

Ty nigdzie, ale w rozwiązaniu @pyholic'a jest raw_input.

1 użytkowników online, w tym zalogowanych: 0, gości: 1