Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. def outputTable(title, header1, header2, strList, intList):
  2. """
  3. Function that prints the contents in tabular format
  4. """
  5.  
  6. # Printing title
  7. print("\n\n %33s \n" %(title));
  8.  
  9. # Printing header
  10. print("\n %-20s %-10s %-23s \n" %(header1, "|", header2));
  11.  
  12. print("\n -------------------------------------------- \n");
  13.  
  14. # Printing formatted output
  15. for i in range(0, len(strList)):
  16. print("\n %-20s %-10s %-23d " %(strList[i], "|", intList[i]));
  17.  
  18. print("\n");
  19.  
  20.  
  21. def outputHistogram(strList, intList):
  22.  
  23.  
  24. """
  25. Function that prints the contents in tabular format
  26. """
  27.  
  28. print("\n\n");
  29.  
  30. # Printing names
  31. for i in range(0, len(strList)):
  32. print("\n %20s %-5s " %(strList[i], " "), end = "");
  33.  
  34. # Printing *'s
  35. for j in range(0, intList[i]):
  36. print("*", end="");
  37.  
  38. print("\n");
  39.  
  40.  
  41. def chkCommas(dataPoint):
  42. """
  43. Function that validates commas error checking
  44. """
  45.  
  46. # Checking for non-existence of comma
  47. if ',' not in dataPoint:
  48. print('\n Error: No comma in string. \n');
  49. return False;
  50.  
  51. # Checking for more than comma
  52. elif dataPoint.count(",") > 1:
  53. print('\n Error: Too many commas in input. \n');
  54. return False;
  55.  
  56. # Checking for integer after comma
  57. else:
  58.  
  59. # Fetching integer after comma
  60. index = dataPoint.find(",");
  61. name = dataPoint.split(",")[0];
  62. integer = (dataPoint.split(",")[1]).strip();
  63.  
  64. # Validating integer
  65. if not (integer.isdigit()):
  66. print('\n Error: Comma not followed by an integer. \n');
  67. return False;
  68. else:
  69. return True;
  70. def main():
  71. """
  72. Main function
  73. """
  74.  
  75. # List's to hold data
  76. strList = [];
  77. intList = [];
  78.  
  79. # Reading title from user
  80. title = input('\n Enter a title for the data: ');
  81. print("\n You entered: " + title);
  82.  
  83. # Reading header1 from user
  84. header1 = input('\n\n Enter the column 1 header: ');
  85. print("\n You entered: " + header1);
  86.  
  87. # Reading header2 from user
  88. header2 = input('\n Enter the column 2 header: ');
  89. print("\n You entered: " + header2);
  90.  
  91. # Reading dataPoints
  92. dataPoint = input("\n\n Enter a data point (-1 to stop input): ");
  93.  
  94. # Reading data points
  95. while dataPoint != "-1":
  96. # Validating commas
  97. commas = chkCommas(dataPoint);
  98.  
  99. # If there commas are OK
  100. if commas:
  101. # Splitting data point to name and integer
  102. name = dataPoint.split(",")[0];
  103. integer = int((dataPoint.split(",")[1]).strip());
  104.  
  105. # Printing to console
  106. print("\n Data string: " + name);
  107. print("\n Data integer: " + str(integer));
  108.  
  109. # Storing in list
  110. strList.append(name);
  111. intList.append(integer);
  112.  
  113. # Reading dataPoints
  114. dataPoint = input("\n\n Enter a data point (-1 to stop input): ");
  115.  
  116. # Printing result in tabular format
  117. outputTable(title, header1, header2, strList, intList);
  118.  
  119. # Printing result in histogram
  120. outputHistogram(strList, intList);
  121.  
  122. # Calling main function
  123. main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement