Это код, который у меня есть. Эта программа должна запрашивать у пользователя слово и определять количество гласных / согласных в нем. После того, как пользователь закончит, программа должна дать ему среднее количество гласных / согласных. Некоторая часть начального кода отличается (отличается от V
и C
), потому что я пытался выяснить, какой из них будет работать.
#Okay, this is the updated version of the code where I combined @AshwiniChaudhary 's code and mine
Теперь я получаю IndexError: индекс кортежа вне допустимого диапазона
Я попытался найти его здесь и на нескольких других сайтах, но на самом деле не нашел ответа, и я не хотел задавать один и тот же вопрос дважды здесь
print("Hello!")
import sys
import re
def VOCO():
VOCO = input("Search for VOWELS or CONSONANTS: ")
if VOCO == "VOWELS":
VOW = input("Please input word for VOWEL counting: ")
re.findall(r'[aeiouAEIOU]', VOW)
V = int(len(re.findall(r'[aeiouAEIOU]', VOW)))
print(V)
elif VOCO == "CONSONANTS":
CON = input("Please input word for CONSONANT counting: ")
re.findall(r'[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]', CON)
C = int(len(re.findall(r'[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]', CON)))
print(C)
else:
print("Please use either VOWELS or CONSONANTS in selection.")
from string import ascii_lowercase as al
def find_vo_cons2(strs,val):
vowels="aeiou"
consonants=set(al)-set(vowels) #set containing only consonants
le=float(len(strs))
vowel_count=0
consonant_count=0
for x in strs:
if x.lower() in vowels:
vowel_count+=1
elif x.lower() in consonants:
consonant_count+=1
if val in ("V","v"):
return vowel_count/le
elif val in ("C","c"):
return consonant_count/le
def CNT(): True or False
CNT = input("Would you like to continue (YES/NO)? ")
if CNT() : "YES"
condition(True)
VOCO()
else:
strs = (VOW or CON)
print("The average of {0} count is {1}".format(find_vo_cons2(strs,VOCO)))
sys.exit
VOCO()
while True:
VOCO()