🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
3 messages
3 total messages Started by sunrrrise Mon, 23 May 2011 15:53
Dziwaczne zachowanie Pythona i funkcji input() w zewnętrznych edytorach
#28109
Author: sunrrrise
Date: Mon, 23 May 2011 15:53
51 lines
2881 bytes
Witam,
jest to mój pierwszy post w tej grupie:) Próbuję nauczyć się Pythona, który coraz bardziej podoba mi się ze względu na swoja intuicyjność. Niestety mam pewien problem nieznanej natury. Do pisania używałem Notepad++ oraz Komodo Edit. Próbowałem też IDLE, ale jego GUI jest okropne.

Niestety używanie dwóch pierwszych jest niewykonalne - ten sam kod zachowuje się zupełnie inaczej. 

Przykładowo, kod o treści:

a = (input("Wprowadź zmienną a: "))
b = (input("Wprowadź zmienną b: "))

print("a to: ", a)
print("b to: ", b)

print(int(a) + int(b))
n=input("Naciśnij Enter aby zakończyć...")

W IDLE działa super (wow...), ale gdy uruchamiam go z poziomu Komodo/Notepad++ to dostaję nastepujący wynik:

Wprowadź zmienną a: 3
Wprowadź zmienną b: 2
a to:  3
b to:  Wprowadź zmienną b: 2
Traceback (most recent call last):
  File "c:\users\sunrrrise\Desktop\startup.py", line 8, in <module>
    print(int(a) + int(b))
ValueError: invalid literal for int() with base 10: 'Wprowadź zmienną b: 2'

Podobnie źle ww edytorach działa liczenie długości. Wiąże się to na pewno z błędnie działającym inputem:

s = (input('Enter something : '))
z = input('Enter something : ')

print('Length of the string s is', len(s))
print('Length of the string z is', len(z))

print(s)
print(z)

Kod ten uruchomiony przez Komodo/Notepad++ zwraca mi taki wynik:

Enter something : 3
Enter something : 2
Length of the string s is 1
Length of the string z is 19
3
Enter something : 2

Czy ktoś spotkał się z podobnym problemem? Pod IDLE wszystko działa jak trzeba!

Pozdrawiam,
s.
Re: Dziwaczne zachowanie Pythona i funkcji input() w zewnętrznych edytorach
#28111
Author: konryd
Date: Tue, 24 May 2011 21:57
42 lines
3507 bytes
On 23 Maj, 17:53, sunrrrise <sunrrr...@gmail.com> wrote:
> Witam,
> jest to mój pierwszy post w tej grupie:)

Witaj, zapraszamy :)

> Próbuję nauczyć się Pythona, który coraz bardziej podoba mi się ze względu na swoja intuicyjność. Niestety mam pewien problem nieznanej natury. Do pisania używałem Notepad++ oraz Komodo Edit. Próbowałem też IDLE, ale jego GUI jest okropne.
>
> Niestety używanie dwóch pierwszych jest niewykonalne - ten sam kod zachowuje się zupełnie inaczej.
>
> Przykładowo, kod o treści:
> [...]

Przyznam się że mnie rozwaliłeś - to nie ma prawa nie działać. Ale z
rzeczy, które mogłyby Ci pomóc:
1. Możesz mieć różne wersje Pythona w których Twój kod się uruchamia.
W żadnej, którą znam nie powinno się dziać tak jak piszesz, ale możesz
chcieć to sprawdzić wpisując: import sys; print sys.version
2. Jesteś absolutnie pewien że to ten sam kod? (copy&paste do IDLE/
edytora/maila?). To naprawdę zachowuje się dziwnie. A możliwe że coś
namieszałeś z cudzysłowami.
3. W celu debugowania warto posłużyć się funkcją repr(). Działa tak
jak str(), tylko że z reguły daje do zrozumienia, czym argument tak
naprawdę jest. W szczególności przy wypisywanie stringa nie wypisze go
po prostu, ale ubranego w cudzysłowy (w przypadku większości typów
wbudowanych repr generuje reprezentację, którą można będzie traktować
jak kod). Możesz np napisać tak:
b = input("wprowadz b: ")
print("wprowadziles: ", repr(b))
4. Inna możliwość to jakieś problemy z terminalem, z którego
korzystasz. Spróbuj odpalić kod normalnie z konsoli (w windowsie:
uruchom: "cmd", znajdź Pythona i w ten sposób odpalaj kod, na maku
odpal terminal, a w linuksie pewnie wiesz :D)
5. Z innych uwag: jeśli nie korzystasz z Pythona 3, funkcja input
zachowuje się trochę dziwnie, tzn. próbuje wykonywać string, który
wpisałeś, tak jakby to był kod. Jeśli chcesz po prostu wczytać coś z
konsoli, użyj raw_input. W Pythonie 3 już to poprawiono.
6. Nie musisz wszystkiego pakować nawiasy :)


powodzenia,
Konrad
Re: Dziwaczne zachowanie Pythona i funkcji input() w zewnętrznych edytorach
#28112
Author: Dariusz Zygmunt
Date: Wed, 25 May 2011 21:41
17 lines
1683 bytes
W wtorek, 24 maja 2011 23:57, konryd wyraził następujacą opinię:
> On 23 Maj, 17:53, sunrrrise <sunrrr...@gmail.com> wrote:
 
>> Próbuję nauczyć się Pythona, który coraz bardziej podoba mi się ze
>> względu na swoja intuicyjność. Niestety mam pewien problem nieznanej
>> natury... 
> Przyznam się że mnie rozwaliłeś - to nie ma prawa nie działać. Ale z
> rzeczy, które mogłyby Ci pomóc:
> 1... 
 
Z ciekawości porównywałem intensywność maili w tym wątku z wątkiem 
"Interpretowany czy kompilowany?". 
Wnioski z obserwacji litościwie pominę  ;-) 
 
Z pozdrowieniami 
Dariusz Zygmunt 
 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads