2013-06-19 3 views
0

Цель: проверить, если строка alphanumric, числовой или только алфавитыPython True/False, если/Элиф/другое условие

Код:

s2 = "123test" 
if s2.isalnum(): 
print "String is alphanumeric" 
elif s2.isalpha(): 
print "String is alpha" 
elif s2.isdigit(): 
print "String is numeric" 
else: 
print "No Idea what the string is" 

Ошибка:

print "String is alphanumeric" 
     ^
IndentationError: expected an indented block 

Когда я делаю print s2.isalnum() сам, он печатает True. Я не уверен, что не так с моим выше частью кода.

Версия: 2,6

+1

Является ли ваш отступ таким же, как указано выше? – fncomp

+0

да мой отступ в коде такой же, как и выше. – misguided

+3

Отступы выглядят неправильно. Для работы python вам потребуется постоянный отступ. –

ответ

5

В питона, отступы важно

s2 = "123test" 
if s2.isalnum(): 
    print "String is alphanumeric" 
elif s2.isalpha(): 
    print "String is alpha" 
elif s2.isdigit(): 
    print "String is numeric" 
else: 
    print "No Idea what the string is" 
4

Если вы правильно скопировать и вставить ваше сообщение об ошибке:

if s2.isalnum() 
      ^
SyntaxError: invalid syntax 

... то проблема в том, что вы забыли двоеточие в конце линии if.

Таким образом, изменить его на:

if s2.alnum(): 

... и это будет хорошо.


Ну, это будет хорошо, что вы получите мимо SyntaxError и запустить IndentationError. Но ответ jh314 уже говорит вам, как это решить.

+0

У него есть двоеточие. – 2rs2ts

+3

@ 2rs2ts: Не соответствует сообщению об ошибке. Таким образом, либо он вставил сообщение об ошибке неправильно, либо неправильно вставил код, либо редактировал код, но забыл его сохранить, поэтому он запускает старую версию или ... И это почти должно быть первое или третье, а не во-вторых, потому что в строке не указано 'SyntaxError'. – abarnert

+0

Да, кто знает, что сделал OP ... – 2rs2ts

Смежные вопросы