2016-01-10 2 views
-4

Я хотел бы написать программу, которая запрашивает у пользователя слово и возвращает константы. Но я застрял в этой программе, я ожидал бы, что эта программа сделает то, что я упомянул выше, но все, что она делает, возвращает слово row by row.Есть ли программа, которая только вернет константы в слово python

original = input('Enter a word:') 
word = original.lower() 
first = word[0] 
second = word[1] 
third = word[2] 
fourth = word[3] 
fifth=word[4] 


if first == "a" or "e" or "i" or "u": 
    print (first) 
else: 
    print ("") 
if second == "a" or "e" or "i" or "u": 
    print (second) 
else: 
    print ("") 
if third == "a" or "e" or "i" or "u": 
    print (third) 
else: 
    print ("") 
if fourth == "a" or "e" or "i" or "u": 
    print (fourth) 
else: 
    print ("") 
if fifth == "a" or "e" or "i" or "u": 
    print (fifth) 
else: 
    print ("") 
+6

... * "согласные" *? – jonrsharpe

+0

Что вы подразумеваете под * «константами» * здесь? –

+0

См. Http://stackoverflow.com/questions/15112125/how-do-i-test-one-variable-against-multiple-values. Также обратите внимание, что вы можете значительно упростить это путем циклического ввода ввода ('для символа в слове:'), и вы неправильно указали * «пятый» *. – jonrsharpe

ответ

1

Strip все гласные от слова и распечатать его:

original = input('Enter a word:') 
print("".join(x for x in original if x.lower() not in "aeiou")) 
0

Предшествование неправильно. "Или" имеет более высокий приоритет, а затем "==" - см https://docs.python.org/2/reference/expressions.html#operator-precedence

Так линия:

if first == "a" or "e" or "i" or "u": 

То же самое, как:

if (first == "a") or ("e") or ("i") or ("u"): 

Что я подозреваю, что это не то, что вы хотели , Следующий может работать лучше:

if first in "aeiu": 

Однако также отметить, что это чувствительно к регистру ...

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