I hope this helps
print
copy
past
send
Answer:
def typeHistogram(it,n):
d = dict()
for i in it:
n -=1
if n>=0:
if str(type(i).__name__) not in d.keys():
d.setdefault(type(i).__name__,1)
else:
d[str(type(i).__name__)] += 1
else:
break
return list(d.items())
it = iter([1,2,'a','b','c',4,5])
print(typeHistogram(it,7))
Explanation:
- Create a typeHistogram function that has 2 parameters namely "it" and "n" where "it" is an iterator used to represent a sequence of values of different types while "n" is the total number of elements in the sequence.
- Initialize an empty dictionary and loop through the iterator "it".
- Check if n is greater than 0 and current string is not present in the dictionary, then set default type as 1 otherwise increment by 1.
- At the end return the list of items.
- Finally initialize the iterator and display the histogram by calling the typeHistogram.
Answer:
Flaws and limitations identified in this program includes;
1.There was a not necessary usage of variable retrieval. Would have made use of canConvert.
2. Looking at the program, one will notice numerous typos. One of which is the fact that in JAVA we make use of Boolean instead of bool.
3.We rather use Integer.parseInt in JAVA and not Int16, cant make use of Int16.
4. The exception cant be printed
5. JAVA makes use of checkConversion instead of convertNumber as used in the program.
6. It cant work for decimal numbers, 0 and big integers.
Explanation:
See Answer for the detailed explaination of the flaws and limitations identified in the program.