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

Odpowiedz Nowy wątek
2015-11-04 11:49
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?

edytowany 1x, ostatnio: Pixelmind, 2015-11-04 11:49

Pozostało 580 znaków

2015-11-04 13:04
0

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


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22, 2015-11-04 13:05

Pozostało 580 znaków

2015-11-04 13:22
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

Pozostało 580 znaków

2015-11-04 20:31
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

Pozostało 580 znaków

2015-11-10 09:25
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
edytowany 1x, ostatnio: Pixelmind, 2015-11-10 09:42

Pozostało 580 znaków

2015-11-10 09:47
0

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


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2015-11-10 10:52
0
bogdans napisał(a):

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

Gdzie ja w kodzie mam raw_input?

Pozostało 580 znaków

2015-11-10 11:30
0

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


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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