Project 12-2: Bird CounterHelp me make a Python program for birdwatchers that stores a list of birds along with a count of the
number of times each bird has been spotted.
Console
Bird Counter program
Enter 'x' to exit
Enter name of bird: red-tailed hawk
Enter name of bird: killdeer
Enter name of bird: snowy plover
Enter name of bird: western gull
Enter name of bird: killdeer
Enter name of bird: western gull
Enter name of bird: x
Name Count
=============== ===============
Killdeer 2
Red-Tailed Hawk 1
Snowy Plover 1
Western Gull 2
Specifications
Use a dictionary to store the list of sighted birds and the count of the number of times
each bird was sighted.
Use the pickle module to read the dictionary from a file when the program starts and
to write the dictionary to a file when the program ends. That way, the data that's
entered by the user isn't lost.
The program based on the information given is illustrated below.
How to illustrate the program?
It should be noted that a computer program is a set of instructions in a programming language for the computer to execute.
Based on the information, the program is illustrated thus:
Code:
import pickle
#function to read birds data
def readBirdsData():
try:
birdsFile = open("birdsData","rb")
birdWatcher = pickle.load(birdsFile)
birdsFile.close()
birdWatcher ={}
except EOFError:
birdWatcher ={}
return birdWatcher
#function to write the data into file using pickle
def writeBirdsData(birdWatcher):
if birdWatcher == {} :
return
sorted(birdWatcher)
birdsFile = open("birdsData","ab")
pickle.dump(birdWatcher,birdsFile)
birdsFile.close()
#function to display birds data in sorted order
def displayBirdsData(birdWatcher):
print("Name\t\tCount")
print("========\t===========")
for key in sorted(birdWatcher.keys()):
print("{}\t\t{}".format(key,birdWatcher[key]))
#main function
def main():
birdWatcher = readBirdsData()
print("Bird Counter Program")
print ("\nEnter 'x' to exit\n")
name = input("Enter name of bird: ")
while True:
#break the loop if x is entered
if name == 'x':
#if the name exists in dictionary then increase the value
if the name in birdWatcher.keys():
birdWatcher[name] = birdWatcher[name] + 1
else:
#dd it otherwise
birdWatcher[name] = 1
name = input("Enter name of bird: ")
displayBirdsData(birdWatcher)
writeBirdsData(birdWatcher)
#driver code
if __nam__ == '__main__':
main()
Learn more about programs on:
#SPJ1
If your question is not fully disclosed, then try using the search on the site and find other answers on the subject Computers and Technology.
Find another answersComputers and Technology, published 10.03.2023
Computers and Technology, published 23.04.2023
Computers and Technology, published 17.03.2023
Which ipconfig parameter allows to view the physical address of a network interface card (nic)?