如何在文本文件上使用字符串方法?

时间:2016-05-05 03:08:14

标签: python python-2.7

我必须编写一个我需要找到的程序

  • 大写字母数

  • 小写字母数

  • 位数

  • 空白字符数

在文本文件中,我当前的代码是

def lowercase(line_list):

    print("Lower case Letters: ", sum(1 for x in line_list if x.islower))


def uppercase(line_list):

    print("Upper case Letters: ", sum(1 for c in line_list if c.isupper())



def numbers(line_list):

    print("Numbers: ", sum(1 for b in line_list if b.isdigit())


def whitespace(line_list):

    print("Spaces: ", sum(1 for y in line_list if y.isspace())


def main():

    in_file = open("text.txt", "r")

    line = in_file.readline()

    line_list = line.split()

    lowercase(line_list)

    uppercase(line_list)

    numbers(line_list)

    whitespace(line_list)

    in_file.close()


main()

然而,每当我尝试运行脚本时,它都会给我一个语法错误。有什么我做错了吗?

2 个答案:

答案 0 :(得分:2)

现在,您的lowercase函数中存在语法错误(您错过了函数调用islower的parens)。但是,您的main函数也存在一些问题。现在,您只读取文件的一行。此外,您正在拆分该行(split默认情况下使用空格拆分,因此您将丢失您尝试计算的空格)。如果你正在尝试阅读整个事情,而不仅仅是一行。试试这个:

def main():
    lower_case = 0
    upper_case = 0
    numbers = 0
    whitespace = 0
    with open("text.txt", "r") as in_file:
        for line in in_file:
            lower_case += sum(1 for x in line if x.islower())
            upper_case += sum(1 for x in line if x.isupper())
            numbers += sum(1 for x in line if x.isdigit())
            whitespace += sum(1 for x in line if x.isspace())

    print 'Lower case Letters: %s' % lower_case
    print 'Upper case Letters: %s' % upper_case
    print 'Numbers: %s' % numbers
    print 'Spaces: %s' % spaces


main()

答案 1 :(得分:0)

这是解决语法错误的代码: 你错过了几个地方的右括号。

def lowercase(line_list):

    print("Lower case Letters: ", sum(1 for x in line_list if x.islower))


def uppercase(line_list):

    print("Upper case Letters: ", sum(1 for c in line_list if c.isupper()))


def numbers(line_list):

    print("Numbers: ", sum(1 for b in line_list if b.isdigit()))


def whitespace(line_list):

    print("Spaces: ", sum(1 for y in line_list if y.isspace()))


def main():

    in_file = open("text.txt", "r")

    line = in_file.readline()

    line_list = line.split()

    lowercase(line_list)

    uppercase(line_list)

    numbers(line_list)

    whitespace(line_list)

    in_file.close()

main()

注意:这只是您遇到的错误的解决方案,由于您必须检查逻辑问题,可能会发生任何其他错误。