2012-03-28 12 views

Odpowiedz

13

Wiesz, jeśli nic nie zostało wpisane do drugiego, ponieważ będzie podnieść SyntaxError. Można złapać błąd tak:

try: 
    y=input('Number>> ') 
except SyntaxError: 
    y = None 

następnie przetestować

# not just 'if y:' because 0 evaluates to False! 
if y is None: 

lub najlepiej użyć raw_input:

try: 
    y = int(raw_input('Number>> ')) 
except ValueError: 
    print "That wasn't a number!" 

Dla pierwszego, x będzie pusty ciąg znaków, jeśli nic nie jest wpisane. Połączenie z str jest niepotrzebne - raw_input już zwraca ciąg znaków. Puste struny mogą być testowane na wprost:

if x == '': 

lub pośrednio:

if x: 

ponieważ tylko False łańcuch jest i pusty.

+1

Lub użyj 'if x.strip():', aby uniknąć przypadków, w których ktoś wprowadził tylko spacje ... – hochl

+0

@hochl Jeśli tylko spacje nie są poprawną wiadomością :) – agf

+0

Idealnie! Dziękuję bardzo za odpowiedź agf i hochl. :) –

0

To również działa zbyt

y = input('Number>> ') 
while not y: 
    y = input('Number>> ') 
Powiązane problemy