Я пытаюсь создать генератор случайных предложений, и этот фрагмент кода должен заставить программу использовать «an», когда noun2
начинается с гласной.
import random
noun=['it', 'he', 'she', 'I']
verb=['am', 'is', 'are' ]
noun1=random.choice(noun).capitalize()+" "
verb1=random.choice(verb)+" "
noun2=random.choice(noun)+"."
if noun2[:1]=='a' or 'e' or 'i' or 'o' or 'u':
asentence=noun1+verb1+'an '+noun2
print(asentence)
else:
print('hi')
Но когда я запускаю программу, она всегда использует «an», даже если noun2
начинается с согласной.
Python работает иначе, чем английский язык.
if noun2[:1]=='a' or 'e' or 'i' or 'o' or 'u':
должен быть
if noun2[:1]=='a' or noun2[:1]=='e' or noun2[:1]=='i' or noun2[:1]=='o' or noun2[:1]=='u':
Что-то вроде этого было бы лучшим способом сделать это if noun2[:1] in 'aeiou':
На этот вопрос ранее был дан ответ здесь. Вы можете узнать больше о логическом ИЛИ здесь.
@ F.M Он всегда будет выдавать True
, потому что все строки (кроме пустых) оцениваются как True, если используются в качестве логических условий. Вышеупомянутая строка читает if "e" or if "i" or if "o"
и т. д., И все они True
. См. Здесь для получения дополнительной информации: stackoverflow.com/questions/715417/…
Что делать, если noun2 [: 1] == 'a', или 'e', или 'i', или 'o', или 'u': do?