Hey, > invalidCommands = 0 > command = ("left", "right", "up", "down") > numUnique = 0 > numInvalid = 0 > invalidCommands = set()
It seems you have defined invalidCommads as borh of int type and a set type. Also a nice trick for multiple options in the future is: If command is in ("up","down","left","right"): print command Of course thos wont worj now vecause yoy have ti keep track of tge counters, but I personaly like it and find it usefull. Good luck, Dino > Message: 2 > Date: Mon, 1 Dec 2014 01:01:32 +0000 > From: <niyanax...@gmail.com> > To: "=?utf-8?Q?tutor@python.org?=" <tutor@python.org> > Subject: [Tutor] Sets Python > Message-ID: <547bbf1d.91268c0a.220f.3...@mx.google.com> > Content-Type: text/plain; charset="utf-8" > > I am not understanding how I am supposed to do the highlighted things on the problem statement. If someone could please direct me on the steps to go about doing what is highlighted. Have do I read each command, by making the program read each line?? How do I add the invalid commands into a set? When printing the command is invalid, do I simply do as I did with the valid commands print? > > > Problem Statement: > We are going to write a program that reads an input file of commands (Commands.txt) to Arnold the Robot. > > The four valid command are: > > Up > > > Down > > > Left > > > Right > > > After you read each command, make sure it is valid (included in the set of valid commands). > > If the command is valid, print ?Valid command entered, the command was:? and the command. > > If the command is invalid, print ?Invalid command entered, the command was:? and the command. > > If the command is invalid, add it to a set of invalid commands. > > Keep a count of: > > The total number of commands read > > > The total number of valid commands read > > > The total number of invalid commands read > > > After all of the commands have been read: > > Print the total number of commands read > > > Print the total number of valid commands read > > > Print the total number of invalid commands read > > > Print the number of unique invalid commands read > > > Print the set of invalid commands. > > > The format of the input files is: > > Each line in the file contains a command, not all command are valid > > > > > > My Code So Far: > > def main() : > # Define main variables > leftCount = 0 > rightCount = 0 > upCount = 0 > downCount = 0 > commandCount = 0 > invalidCommands = 0 > command = ("left", "right", "up", "down") > numUnique = 0 > numInvalid = 0 > invalidCommands = set() > > filename = input("Enter filename (default: Commands.txt): ") > if len(filename) == 0 : > filename = "Commands.txt" > inputFile = open(filename, "r") > > > command = input("Please enter a command for Arnold: ") > if command in command : > commandCount = commandCount + 1 > print("The total amount of commands: ", commandCount) > if command == "up" : > upCount = upCount + 1 > print("Valid command entered, the command was: up") > elif command == "down" : > downCount = downCount + 1 > print("Valid command entered, the command was: down") > elif command == "left" : > leftCount = leftCount + 1 > print("Valid command entered, the command was: left") > elif command == "right" : > rightCount = rightCount + 1 > print("Valid command entered, the command was: right") > else : > print("Invalid command entered, the command entered was: ", command) > numInvalid = numInvalid + 1 > if not command in invalidCommands : > numUnique = numUnique + 1 > invalidCommands.add(command) > > > > > > for line in inputFile : > theWords = line.split() > for word in theWords : > cleaned = clean(word) > if cleaned != "" : > numUnique.append(cleaned) > print("The file contains", len(numUnique), "unique words.") > > > > # Cleans a string by making letters lowercase and removing characters that are not letters > # @param string the string to be cleaned > # @return the cleaned string > def clean(string) : > result = "" > for char in string : > if char.isalpha() : > result = result + char > return result.lower() > > > > > > # Start the program. > main() > > > > What Happens When Ran: > > 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit (Intel)] > Python Type "help", "copyright", "credits" or "license" for more information. > [evaluate CommandsDraft.py] > Enter filename (default: Commands.txt): Commands.txt > Please enter a command for Arnold: dawn > The total amount of commands: 1 > Invalid > Traceback (most recent call last): > File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 70, in <module> > File "C:\Program Files (x86)\Wing IDE 101 5.0\src\debug\tserver\_sandbox.py", line 52, in main > builtins.AttributeError: 'int' object has no attribute 'append' > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < http://mail.python.org/pipermail/tutor/attachments/20141201/fecd2537/attachment.html > > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > Tutor maillist - Tutor@python.org > https://mail.python.org/mailman/listinfo/tutor > > > ------------------------------ > > End of Tutor Digest, Vol 130, Issue 1 > *************************************
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor