关于python:带循环的数组

Arrays with loops

我需要能够编写一个程序,它接收一个文件,然后返回一个令牌数组,然后在数组中循环,每行打印一个令牌,然后删除所有标点和小写的每个单词,然后计算在整个文件中出现请求的单词的次数。问题是我在返回数组时遇到问题,我不太确定如何创建数组,它允许用户键入任何单词或任意多的单词,然后让程序在文件中搜索以查找这些单词…..我花了8个小时,这就是我目前拥有的全部内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys
from scanner import *


def main():
    tokens = readTokens("shakespeare.txt")
    for i in range(0,len(tokens),1):
        print(tokens[i])
def readTokens(fileName):
    with open("shakespeare.txt", 'r') as f:
        return f.read().split()
    token = s.readtoken()
    while (token !=""):
        print(token)
        token = s.readtoken()

    s.close()
main()


这是stackoverflow,所以你不可能让别人为你编写整个程序…我假设您的问题更多地是关于如何处理这个问题,而您使用的是Python

分而治之是你的朋友

  • 阅读文件的行:在这里或这里
  • 将行存储到数组中:在此处或此处
  • 循环遍历数组中的每个元素:这里
  • 检查找到的每个字符串是否包含标点符号:此处
  • 如果它包含标点符号,请删除它(这一个由您决定)
  • 尝试上述方法,并提出一个更实用的解决方案(您的代码目前看起来仍然在学习某些核心编程思想)。在那之后,你可以考虑让它更快/更可读,等等。如果你详细说明你的尝试,它将帮助社区更好。


    这就是您如何读取整个文件以及如何在所有空间拆分它:

    1
    2
    3
    def readTokens(filename):
        with open(filename, 'r') as f:
            return f.read().split()