Konsola Python

0

Mam problem z konsola pythona. Korzystam z IDLE python 2.6. Miałem napisać progranik który liczy sume cyfr w liczbie. Program działa - SPOJ zaakceptował.Wygląda tak:

while True:
	try:
		suma = 0
		liczba = int(raw_input())
		while liczba:
			suma = suma+(liczba%10)
			liczba = liczba/10
		else: print suma
	except EOFError: break 

I tu mam pytanie - fajnie,że program działa, ale jak ja sam mam go przetestowac ?
Jestem przyzwyczajony do C,C++ itd a tu po wpisaniu kodu naciskam enter i nic. Jak to zrobic zebym mogl sobie wpisac sam ta zmienna liczba i zobaczyc efekt działania programu?

1

Np. tak:

import os
os.system("pause")

# lub

raw_input('Press ENTER to continue...\n')
1

Nie lepiej tak:

from sys import stdin
stdin.readline() # liczba testow, zbedna
print('\n'.join(str(sum(int(n) for n in line)) for line in stdin))

Testowanie: odpal skrypt w konsoli, podaj liczby potwierdzone enterem, ctrl+d lub ctrl+z zależnie od systemu (EOF) i ew. enter.

0

Gdzie powinienem to dopisać ? na końcu skryptu ?

0

Tam gdzie chcesz zatrzymać, ofc import na początku gdzieś, nie wiem dokładnie nie znam Py.

0
SzeWa napisał(a)

... a tu po wpisaniu kodu naciskam enter i nic...

trzeba nacisnąć 2 razy :P

0

u mnie działa

 
>>> while True:
... 	try:
... 		suma = 0		
... 		liczba = int(raw_input())
... 		while liczba:
... 			suma = suma+(liczba%10)	
... 			liczba = liczba/10
... 		else: print suma
... 	except EOFError: break 	
... 	
5
4
11
36
5
28
0

przepisz pierwszy wiersz i naciśnij enter, przepisz drugi wiersz i naciśnij enter... po ostatnim wierszu naciśnij 2 razy enter a wyskoczy okienko do podania liczby, jak po prostu wkleisz cały kod to nie zadziała, taki urok IDLE :P

0
 Traceback (most recent call last):
  File "<pyshell#19>", line 4, in <module>
    liczba=int(raw_input())
ValueError: invalid literal for int() with base 10: ''

Zrobiłem jak mówisz. Wciaz ten sam błąd. Poważnie tak jest z IDLE ? a co jesli miałbym program na 150 linijek.. zrobilbym gdzies błąd i co? cały przepisuje? to by było bez sensu... ;/

0

to jest proste, IDLE służy do testowania prostych rzeczy, wieksze rzeczy zapisujesz do skryptu i odpalasz skrypt w IDLE, przeczytaj co napisał @anonim

1

łooooo matko!
otwórz notatnik, wklej swój kod (tak, tym razem wklej), zapisz pod nazwą test.py, zamknij notatnik
odpal IDLE, menu File => Open, wybierz test.py, otworzy się nowe okno z Twoim kodem, w tym oknie menu Run => Run Module (lub F5), Twój kod zostanie uruchomiony w pierwszym oknie i IDLE będzie czekało na podanie liczby
u mnie wygląda to tak (komentarze dodałem później):

 
Python 3.2.2 (default, Sep  4 2011, 09:07:29) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
12 //tą liczbę podałem
3.3333333333333335 //to jest wynik
128 //tą liczbę podałem
12.222222222222223 //to jest wynik

P.S. jeżeli nadal będzie się czepiał o raw_input() - zamień na input(), to zalezy od wersji Pythona

0

raw_input('Press ENTER to continue...\n')

przepisz pierwszy wiersz i naciśnij enter, przepisz drugi wiersz i naciśnij enter... po ostatnim wierszu naciśnij 2 razy enter a wyskoczy okienko do podania liczby, jak [błąd ortograficzny] wkleisz cały kod to nie zadziała, taki urok IDLE :P

:|

I tu mam pytanie - fajnie,że program działa, ale jak ja sam mam go przetestowac ?

Uruchomić z cmd a nie blokować program...

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