python - Function that takes a string representing a filename as an argument. Function returns number of letters in the txt file -


i need write function takes string representing filename argument, e.g. letter_count('alphabet.txt'). function should open file , return number of letters (not digits or other characters) contains.

sorry including doctest think helps make more obvious trying achieved.

def letter_count(filename):     """     >>> letter_count("anthem.txt")     177     >>> letter_count("digits.txt")     0     >>> letter_count("phrase.txt")     10     """      myfile = filename     count = 0     letters = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"     text = myfile.readlines()     char in text:         if char in letters:             count += 1     return count   import string  myfile = open(filename, 'r') myfile.close()  if __name__=="__main__":    import doctest    doctest.testmod(verbose=true) 

obviously have made mistake cannot pinpoint, advice?

your file being opened outside function.

try this:

def letter_count(filename):     count = 0     letters = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"     open(filename) f:         line in f:             char in line:                 if char in letters:                     count += 1     return count 

edit: take closer look @ with statement, it's quite handy here.


Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -