2012-03-28 6 views
5

Làm cách nào để kiểm tra xem nhập liệu đã được nhập chưa?Làm cách nào để kiểm tra xem người dùng có để trống lời nhắc 'nhập' hoặc 'raw_input' không?

Ví dụ:

x = str(raw_input('Message>> ')) 

hoặc

y = input('Number>> ') 
+1

Chức năng đầu vào sẽ không trở lại cho đến khi một cái gì đó đã được nhập. Bạn có nghĩa là làm thế nào để kiểm tra xem đầu vào đã nhập có trống không? –

+0

@MarkRansom Vâng, đó chính xác là những gì tôi cần! :) –

Trả lời

13

Bạn biết nếu không có gì đã được nhập cho một thứ hai bởi vì nó sẽ nâng cao một SyntaxError. Bạn có thể bắt lỗi như thế này:

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

sau đó kiểm tra

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

hay, tốt, sử dụng raw_input:

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

Đối với người đầu tiên, x sẽ là một chuỗi rỗng nếu không có gì được nhập vào. Cuộc gọi tới str là không cần thiết - raw_input đã trả về một chuỗi. chuỗi rỗng có thể được kiểm tra một cách rõ ràng:

if x == '': 

hoặc ngầm:

if x: 

vì chỉ False chuỗi là và chuỗi rỗng.

+1

Hoặc sử dụng 'if x.strip():' để tránh trường hợp người nào đó nhập chỉ ... – hochl

+0

@hochl Nếu chỉ các dấu cách không phải là một thông báo hợp lệ :) – agf

+0

Hoàn hảo! Cảm ơn bạn rất nhiều cho câu trả lời của bạn agf và hochl. :) –

0

này cũng làm việc quá

y = input('Number>> ') 
while not y: 
    y = input('Number>> ')