我必须编写一个我需要找到的程序
大写字母数
小写字母数
位数
空白字符数
在文本文件中,我当前的代码是
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()
然而,每当我尝试运行脚本时,它都会给我一个语法错误。有什么我做错了吗?
答案 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()
注意:这只是您遇到的错误的解决方案,由于您必须检查逻辑问题,可能会发生任何其他错误。