Write a Python program that takes a list of numbers as input from the user and prints the sum, average, minimum, and maximum of the numbers in the list. 

Answer:

Answer by student

names = tuple(input( "Enter names separated by commas: " ).split( "," ))

-lock-

freq = {}

for name in names:

  if name in freq:

    freq[name] += 1

  else :

    freq[name] = 1

most_freq = []

max_freq = 0

for name, count in freq.items():

  if count > max_freq:

    max_freq = count

    most_freq = [name]

  elif count == max_freq:

    most_freq.append(name)

most_freq.sort()

print( "The most frequent name(s) is/are:" , ", " .join(most_freq))

Detailed answer by teachoo

  • To write a Python program that takes a tuple of names as input from the user, we need to use the input() function to get a string from the user and then use the split() method to split the string by commas and convert it into a list. Then, we can use the tuple() function to convert the list into a tuple and assign it to a variable called names .
  • To count the frequency of each name in the tuple, we need to use a data structure called a dictionary . A dictionary is a collection of key-value pairs, where each key is unique and each value is associated with a key. We can create an empty dictionary using curly braces {} and assign it to a variable called freq .
  • To loop through the names in the tuple, we need to use a for loop. A for loop is a way of repeating a block of code for each element in a sequence. We can use the syntax for name in names: to iterate over each name in the tuple and execute the indented code block below it.
  • To check if a name is already in the dictionary, we need to use the in operator. The in operator returns True if a key is present in a dictionary and False otherwise. We can use the syntax if name in freq: to check if the current name is a key in the dictionary and execute the indented code block below it if it is True.
  • To increment the frequency of a name by 1, we need to use the += operator. The += operator adds a value to an existing variable and assigns it back to the same variable. We can use the syntax freq[name] += 1 to add 1 to the value of freq[name] and assign it back to freq[name].
  • To add a new name to the dictionary with frequency 1, we need to use square brackets [] and assign a value to it. We can use the syntax freq[name] = 1 to create a new key-value pair in the dictionary with name as the key and 1 as the value.
  • To store the most frequent names, we need to use another data structure called a list . A list is a collection of items that can be changed or modified. We can create an empty list using square brackets [] and assign it to a variable called most_freq .
  • To store the maximum frequency, we need to use another variable and initialize it with 0. We can use any name for this variable, but let’s call it max_freq for clarity.
  • To loop through the items in the dictionary, we need to use another for loop. A for loop can also iterate over key-value pairs in a dictionary using the items() method. The items() method returns a view object that contains tuples of keys and values. We can use the syntax for name, count in freq.items(): to iterate over each key-value pair in freq and assign them to variables name and count respectively.
  • To compare the count with the maximum frequency, we need to use an if-elif-else statement. An if-elif-else statement is a way of executing different blocks of code based on different conditions. We can use the syntax if count > max_freq: to check if the current count is greater than max_freq and execute the indented code block below it if it is True. In this case, we need to update max_freq with the current count and assign most_freq with a list containing only the current name. We can use the syntax max_freq = count and most_freq = [name] to do this.
  • To check if the count is equal to the maximum frequency, we need to use an elif clause. An elif clause is a way of checking another condition after an if clause. We can use the syntax elif count == max_freq: to check if the current count is equal to max_freq and execute the indented code block below it if it is True. In this case, we need to append the current name to the most_freq list. We can use the append() method to add an item to the end of a list. We can use the syntax most_freq.append(name) to do this.
  • To sort the most_freq list in alphabetical order, we need to use the sort() method. The sort() method modifies a list by arranging its items in a specified order. By default, it sorts the items in ascending order. We can use the syntax most_freq.sort() to sort the most_freq list alphabetically.
  • To print the most frequent name(s), we need to use the print() function. The print() function displays a message or a value on the screen. We can use the syntax print("The most frequent name(s) is/are:", ", ".join(most_freq)) to print a string followed by a comma-separated string of the most_freq list. To join the items of a list with a comma, we can use the join() method. The join() method returns a string that is a concatenation of the elements of an iterable object, such as a list, with a specified separator between them. We can use the syntax ", ".join(most_freq) to join the most_freq list with a comma and a space.

So, the final code is:

# Input a tuple of names

names = tuple(input( "Enter names separated by commas: " ).split( "," ))

 

# Initialize an empty dictionary to store the frequencies of names

freq = {}

 

# Loop through the names in the tuple

for name in names:

  # If the name is already in the dictionary, increment its frequency by 1

  if name in freq:

    freq[name] += 1

  # Otherwise, add the name to the dictionary with frequency 1

  else :

    freq[name] = 1

 

# Initialize an empty list to store the most frequent names

most_freq = []

 

# Initialize a variable to store the maximum frequency

max_freq = 0

 

# Loop through the items in the dictionary

for name, count in freq.items():

  # If the count is greater than the maximum frequency, update the maximum frequency and the most frequent list with only this name

  if count > max_freq:

    max_freq = count

    most_freq = [name]

  # If the count is equal to the maximum frequency, append this name to the most frequent list

  elif count == max_freq:

    most_freq.append(name)

 

# Sort the most frequent list in alphabetical order

most_freq.sort()

 

# Print the most frequent name(s)

print( "The most frequent name(s) is/are:" , ", " .join(most_freq))

 

-endlock-

Remove Ads
Davneet Singh's photo - Co-founder, Teachoo

Made by

Davneet Singh

Davneet Singh is an IIT Kanpur graduate and has been teaching for 16+ years. At Teachoo, he breaks down Maths, Science and Computer Science into simple steps so students understand concepts deeply and score with confidence.

Many students prefer Teachoo Black for a smooth, ad-free learning experience.