Konsola Python

SW
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 10 lat
  • Postów:126
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:

Kopiuj
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?

xeo545x39
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • Lokalizacja:Kosmos
  • Postów:1571
1

Np. tak:

Kopiuj
import os
os.system("pause")

# lub

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

Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
SW
Mam to dopisać na końcu ?
1

Nie lepiej tak:

Kopiuj
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.

edytowany 2x, ostatnio: Demonical Monk
SW
Mógłbyś powiedzeć, gdzie to wkleić?
SW
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 10 lat
  • Postów:126
0

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

xeo545x39
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • Lokalizacja:Kosmos
  • Postów:1571
0

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


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
ZJ
import można dać prawie wszędzie. Dodawanie go w środku funkcji jednak trochę zaburza kod.
0
SzeWa napisał(a)

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

trzeba nacisnąć 2 razy :P

SW
Też nic ;p po 3 razie ERROR ;P
0

u mnie działa

Kopiuj
 
>>> 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
SW
Tak tez moge sobie wpisywac liczby bez konca.. Ale program nie podaje potem wyniku ;) 'print suma'
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

SW
Dlaczego to nie może być tak proste jak przy językach C !! ;/
SW
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 10 lat
  • Postów:126
0
Kopiuj
 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

SW
czytałem ;P ale nie wiem gdzie wkleić to co napisał ;)
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):

Kopiuj
 
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

madmike
A notatnik to Ci po co? Przecież masz w IDLE w menu File=>New Window; wpisujesz co chcesz wpisać (albo wklejasz), zapisujesz, F5 i po krzyku...
SW
msm
Administrator
  • Rejestracja:około 16 lat
  • Ostatnio:5 miesięcy
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...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.