import sys
import pickle
import string

def Menu():
    print ("\n***********MENU************")
    print ("0. Quit")
    print ("1. Read text file")
    print ("2. Display counts")
    print ("3. Display statistics of word lengths")
    print ("4. Print statistics to file")

def Loop():
    choice = -1

    while choice !=0:
        Menu()
        choice = (int(input("Please choose 1-4 to perform function. Press 0 to exit the program. Thank you. \n")))
        if choice == 0:
            print ("Exit program. Thank you.")
            sys.exit
        elif choice == 1:
                user_File = ReadTextFile()
        elif choice == 2:
                DisplayCounts(user_File)
        elif choice == 3:
                DisplayStats(user_File)
        elif choice == 4:
                PrintStats(aDictionary)     
        else: 
            print ("Error.")

def ReadTextFile():
    print "\n" 
    while True:
            InputFile = input("Please enter a file name (NOTE: must have quotation marks around name and extension): ")
        if (InputFile.lower().endswith('.txt')):
                break
        else:
                print("That was an incorrect file name. Please try again.")
        continue
    return InputFile

def DisplayCounts(InputFile): 
    print "\n"   
    numCount = 0
    dotCount = 0
    commaCount = 0
    lineCount = 0
    wordCount = 0

    with open(InputFile, 'r') as f:
            for line in f:
                wordCount+=len(line.split())
                lineCount+=1
                for char in line:
                        if char.isdigit() == True:
                            numCount+=1
                        elif char == '.':
                            dotCount+=1
                        elif char == ',':
                            commaCount+=1

    print("Number count: " + str(numCount))
    print("Comma count: " + str(commaCount))
    print("Dot count: " + str(dotCount))
    print("Line count: " + str(lineCount))
    print("Word count: " + str(wordCount))

def DisplayStats(InputFile):
    print "\n"
    temp1 = []
    temp2 = []
    lengths = []
    myWords = []
    keys = []
    values = []
    count = 0

    with open(InputFile, 'r') as f:
        for line in f:
            words = line.split()
            for word in words:
                temp2.append(word)
                temp1.append(len(word))

        for x in temp1:
            if x not in lengths:
                lengths.append(x)

    lengths.sort()

    dictionaryStats = {}
    for x in lengths:
        dictionaryStats[x] = []

    for x in lengths:
        for word in temp2:
            if len(word) == x:
                dictionaryStats[x].append(word)

    for key in dictionaryStats: 
            print("Key = " + str(key) + " Total number of words with " + str(key) + " characters = " + str(len(dictionaryStats[key])))        
    return dictionaryStats

def PrintStats(aDictionary):
    print "\n"
    aFile = open("statsWords.dat", 'w')
    for key in aDictionary:
        aFile.write(str(key) + " : " +  str(aDictionary[key]) + "\n")        
    aFile.close()


Loop()

There's something with that last function that is really tripping me up. I keep getting errors. I know aDictionary is not defined but I do not even know what to define it as! Any of you guys have an idea? Thanks.

有最后一个功能的东西真的让我感到沮丧。我一直在收到错误。我知道aDictionary没有定义,但我甚至不知道将它定义为什么!你们俩有个主意吗?谢谢。

1 个解决方案

#1


0

with open("some_file.txt","W") as f:
    print >> f, "Something goes here!"

its hard to say without your errors. .. but you almost certainly need to have aDictionary defined

没有你的错误很难说。 ..但你几乎肯定需要定义一个字典

also probably something like

也可能是这样的

def DisplayCounts(InputFile): 
    print "\n"   
    numCount = 0
    dotCount = 0
    commaCount = 0
    lineCount = 0
    wordCount = 0

    with open(InputFile, 'r') as f:
            for line in f:
                wordCount+=len(line.split())
                lineCount+=1
                for char in line:
                        if char.isdigit() == True:
                            numCount+=1
                        elif char == '.':
                            dotCount+=1
                        elif char == ',':
                            commaCount+=1

    return dict(numbers=numCount,
    comma=commaCount,
    dot=dotCount,
    line=lineCount,
    word=wordCount)

result = DisplayCounts("someinput.txt")
print result

更多相关文章

  1. 套接字错误“IP地址在其上下文中无效” - Python
  2. 无法安装ndg-httpsclient或者我的解决方案错误
  3. Python套接字代理示例,不断收到调用bind()的错误..为什么?
  4. 是什么导致了Python分割错误?
  5. Python 3.4中的Pytesser:名称“image_to_string”没有定义?
  6. wget在linux中安装出现错误解决办法
  7. busybox1.19.3编译错误解决办法
  8. 打开“保存命令历史记录时遇到错误”时的Matlab错误
  9. 编译android源码时,jack server 出现out of memory error 错误的

随机推荐

  1. Android 数据库之 SQLiteConnectionPool
  2. Android 对象序列化之 Parcelable 取代 S
  3. Android(安卓)Canvas绘图详解(图文)
  4. 去掉RecycleView或者ListView上下滑动阴
  5. 【原创】Proton在Android上的编译
  6. Android xml manifest属性详解
  7. 相对布局属性
  8. Android:实现无标题的两种方法
  9. android 小游戏 ---- 数独(四)
  10. --android bitmap oom 分析