Как написать функцию, которая возвращает общее количество цифр и пробелов - PullRequest
0 голосов
/ 30 апреля 2020

Привет, я пытаюсь написать функцию, которая открывает файл и возвращает общее количество цифр и пробелов, которые в нем содержатся. Код не выдает ошибку, но в ходе тестирования он возвращает неправильный номер.

def digit_space_count(filename):
    file_in = open(filename)
    text = file_in.read()
    count = 0
    for ch in text:
        if ch.isspace():
            count += 1
        if ch.isdigit():
            count += 1
    file_in.close()
    return count

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Пожалуйста, опубликуйте пример файла, который вы используете, ожидаемого результата и того, что вы получаете. Возможно, вы не учитываете некоторые символы в isspace. Например, переводы строк учитывают это. Это зависит от того, что вы хотите рассмотреть для «одиночных пробелов».

Альтернативная форма приведена ниже. Вы должны добавить к регулярному выражению все символы, которые вы считаете «пробелами»:

def digit_space_count(filename):
    import re
    file_in = open(filename)
    text = file_in.read()
    count = len(text) - len(re.sub(r"[ 0-9]", "", text))
    file_in.close()
    return count

См., Например, { ссылка }

0 голосов
/ 30 апреля 2020

Я мог бы go для опции замены регулярного выражения здесь:

def digit_space_count(filename):
    with open(filename, 'r') as the_file:
        text = the_file.read()

        return len(text) - len(re.sub(r'[0-9 ]', '', text))

Лог c здесь для возврата разницы между длиной исходного текста и длиной после удаления всех цифр и пробелы. Это должно соответствовать количеству ди git и пробелов в файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...