1

これは私がこれまでに持っているコードです。このプログラムは、ユーザーに単語を尋ね、その中の母音/子音の量を判断することになっています。ユーザーが終了した後、プログラムは母音/子音の平均数をユーザーに提供することになっています。どちらが機能するかを把握しようとしていたため、最初のコードの一部が異なります ( と の間Vで異なります)。C

#Okay, this is the updated version of the code where I combined @AshwiniChaudhary 's code and mine

今、私は IndexError: tuple index out of range を取得しています

ここや他のいくつかのサイトで調べてみましたが、実際には答えが見つからず、ここで同じ質問を2回したくありませんでした

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()
4

1 に答える 1

0

regex同様に使用せずにこれを行うと思います:

from string import ascii_lowercase as al
def find_vo_cons(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 main():
    VOCO = input("Search for VOWELS(v) or CONSONANTS(c): ")
    dic={"v":"Vowels","c":"Consonants"}
    strs=  input("Enter the string: ")
    print ("The average of {0} count is {1}".format(dic[VOCO.lower()],find_vo_cons(strs,VOCO)))

main()

出力:

~$ python3 so.py
Search for VOWELS(v) or CONSONANTS(c): v
Enter the string: foObAr
The average of Vowels count is 0.5

~$ python3 so.py
Search for VOWELS(v) or CONSONANTS(c): c
Enter the string: qwertyuiop
The average of Consonants count is 0.6
于 2013-04-14T19:18:59.177 に答える