Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: PyData Warsaw 2017, 19-20 października - konferencja Data Science
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: [Python 2.6.6] Zamiana stringu na liczbę, a znak '\n'.  (Przeczytany 4136 razy)
« : 12:25 15/03/11 »
Kamzor Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 7


Witam, jeszcze jedno pytanko ode mnie ;-)

Mając na przykład taki plik tekstowy:
Kod
1
2
3
A dokładniej:
Kod
"1\n2\n3\n"
Wczytuję sobie linie w pętli for:
Kod
for num in sys.stdin:

Natomiast jaka jest różnica pomiędzy:
Kod
num = int( num.rstrip() )
a:
Kod
num = int(num)

Pierwszy kod przed przesłaniam stringa do funkcji int, usuwa z niego znak nowej linii. Obie wersje jednak działają, stąd moje pytanie:
-Jak funkcje takie jak int traktują znak '\n', i którą wersję powinno się wykorzystywać?
Zapisane
« Odpowiedz #1 : 12:33 15/03/11 »
DimmuR Offline
Moderator Globalny
Professional Python User

Zobacz profil
*****

Reputacja: 88
Płeć: Mężczyzna
Wiadomości: 426


Z przykładu niżej wynika że olwają '\n':

Kod
In [1]: int('1\n')
Out[1]: 1
 

najprawdopodobniej dlatego że wykonują na stringu .strip() któr tego typu znaki usuwa. Podobnie ma się rzecz w przypadku nadmiarowych spacji:

Kod
In [7]: int('1    ')
Out[7]: 1
 
In [8]: int('1    \n')
Out[8]: 1
 
Zapisane

Stowarzyszenie Polska Grupa Użytkowników Pythona - plpug.org
« Odpowiedz #2 : 12:36 15/03/11 »
jaras Offline
Advanced Python User

Zobacz profil
**

Reputacja: 30
Wiadomości: 191


jeśli działa, to pewnie usuwa nadmiarowe znaki białe, co zresztą jest jak byk w dokumentacji:
Cytuj
int([x[, base]])

    Convert a string or number to a plain integer. If the argument is a string, it must contain a possibly signed decimal number representable as a Python integer, possibly embedded in whitespace.

którego używać? szybszego, mniej pamięciożernego, każdemu wedle potrzeb - sprofiluj, będziesz wiedział...
Zapisane
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2017 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot