why am i only getting 0 outputs?

the second loop should be for each character in the given line instead.

Try this one:

ein = input("Please enter file name: ")
vowels = set("AEIOUaeoiu")
cons = set("BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwvyz")
num = set("1234567890")
count = 0
Vcount = 0
Ccount = 0
Ncount = 0
with open(ein) as ein_handle:
    for line in ein_handle:
        count += 1
        for letter in line:
            if letter in vowels:
                Vcount += 1
            elif letter in cons:
                Ccount += 1
            elif letter in num:
                Ncount += 1
print("the file has", count, "lines.")
print("the file has", Vcount, "vowels.")
print("the file has", Ccount, "consonants.")
print("the file has", Ncount, "numerical characters.")

Also, the main reason you’re getting 0 (instead of line count) inside the second loop is because when the first loop executes, it updates the read offset position with every iteration until it becomes at the end. So when the second loop starts, it starts from the end of the file and can’t read anything.

CLICK HERE to find out more related problems solutions.

Leave a Comment

Your email address will not be published.

Scroll to Top