#python #multiple-conditions
#python #множественные условия
Вопрос:
Я все еще новичок в python и только начал изучать. Поставленная задача состоит в том, чтобы найти количество знаков препинания, гласных и констант в данном тексте. Но всякий раз, когда я запускаю код, он просто выдает мне 0
.
def getInfo(text):
pun = [".", ",", " ", "'", """, "!"]
vowels = ["a", "e", "i", "o", "u"]
count = 0
count2 = 0
count3 = 0
for char in text:
if char in pun:
count = 1
return count
if char.lower() in vowels:
count2 = 1
return count2
if (not char.lower() in vowels) and (not char.lower() in pun):
count3 = 1
return count3
Ответ №1:
Вы перенастраиваете значение после проверки знаков препинания, остальные из них игнорируются. Итак, вы получаете 0. Ваш код допустим для проверки пунктуации.
Ответ №2:
Когда программа достигает возврата, она выходит из цикла.
def getInfo(text):
pun = [".", ",", " ", "'", '"', "!"]
vowels = ["a", "e", "i", "o", "u"]
count = 0
count2 = 0
count3 = 0
for char in text:
if char in pun:
count = 1
if char.lower() in vowels:
count2 = 1
if (not char.lower() in vowels) and (not char.lower() in pun):
count3 = 1
return "count: {0}, count2: {1}, count3: {2}".format(count, count2, count3)
print(getInfo("We are in 2020."))
Вывод:
count: 4, count2: 4, count3: 7
Ответ №3:
Возврат должен быть вне цикла.
Это должно быть :
def getInfo(text):
pun = [".", ",", " ", "'", """, "!"]
vowels = ["a", "e", "i", "o", "u"]
count = 0
count2 = 0
count3 = 0
for char in list(text):
if char in pun:
count = 1
if char.lower() in vowels:
count2 = 1
if (not char.lower() in vowels) and (not char.lower() in pun):
count3 = 1
return (count, count2, count3)
getInfo('myname.is hello world!')
# (4, 6, 12)
Ответ №4:
Вы используете return
ключевое слово, то есть весь приведенный ниже код не будет выполняться, и функция вернет переменную count
.
Пожалуйста, проверьте это.