Python FOR 循环字符计数



这是我的类代码,我假设使用 for 循环来计算某个字符的使用次数,我被告知要做每个字符而不是一行,这是什么意思?除了基本的弦线,我大部分时间都不知道,我目前在线,大部分时间都无法理解老师的意思。这是我在字符计数方面遇到的唯一代码创建。

   def main():
        try:
                uppercase = 0
                lowercase = 0
                digits = 0
                whitespace = 0
                string_input = open('text.txt', 'r')
                character_strings = string_input.readlines()
                for i in range(len(character_strings)):
                    character_strings[i] = character_strings[i].rstrip("n")
                uppercase = uppercase_counter(character_strings)
                lowercase = lowercase_counter(character_strings)
                digits = digit_counter(character_strings)
                count1 = 0
                count2 = 0
                count3 = 0
                for ch in string:
                        if ch.isupper():
                                count1 = count1 + 1
                return count1
                print(count1)
                for ch in string:
                        if ch.islower():
                                count2 = count2 + 1
                return count2
                print(count2)
                for ch in string:
                        if ch.isdigit():
                                count3 = count3 + 1    
                return count3
                print(count3)
        except IOError:
                print("The file could not be found")
        except IndexError:
                print("There was an indexing error")
        except:
                print("An error occurred")
main()

首先,永远不要在 Python 中使用选项卡。始终使用 4 空格缩进,这是一种常见的做法。当每个人都以同样的方式做这些简单的事情时,这很方便,有助于理解别人的代码。

他们在告诉你什么:

character_strings = string_input.readlines()

此行读取string_input文件中的所有文本,用换行符将其拆分并返回行列表。如我所见,无需关心行,您可以将整个文本读取为单个长字符串

string = string_input.read()

因此,您应该将该字符串传递给您拥有的所有_counter

uppercase = uppercase_counter(string)

等等。

关于对 for 循环执行相同的操作,您需要遍历字符串的符号

for symbol in string:
    if symbol.isupper():
        count1 = count1 + 1

islowerisdigit相同

(命名变量如something1something2something3通常是一种不好的做法。也许你应该想出更好的名字。

附言您忘了关闭文件。在第一个except之前插入string_input.close()。始终建议在完成文件后关闭文件。

让我们让它变得简单。

您必须打开阅读此文件内容...此.txt文件。所以试试这个:

someFile = open('file.txt')      # Open the file
fileContent = someFile.read()    #Read its content and store it in fileContent variable

现在,您必须遍历 fileContent 中包含的字符串。

count = {}
for character in fileContent:
    count.setdefault(character, 0)
    count[character] = count[character] + 1
print(count)

程序循环遍历fileContent变量字符串中的每个字符,计算每个字符出现的频率。

最后,输出将是一个字典,其中键是每种字符,值是它们出现的次数,包括所有小写字母、大写字母和空格字符。

我希望我能帮助你。

相关内容

  • 没有找到相关文章

最新更新