Files
2019-03-23 17:45:05 +08:00

58 lines
1.5 KiB
Python

#!/usr/bin/python
import threading
import sys
average_result = None
minimum_result = None
maximum_result = None
def calculate_average(numbers: list):
global average_result
average_result = sum(numbers) / len(numbers)
def calculate_minimum(numbers: list):
global minimum_result
minimum_result = min(numbers)
def calculate_maximum(numbers: list):
global maximum_result
maximum_result = max(numbers)
def main() -> int:
if len(sys.argv) == 1:
print('Error: One or many integer arguments are necessary.')
return 1
# Converting digit strings into integers
numbers = None
try:
numbers = [int(digit) for digit in sys.argv[1:]]
except:
print('Error: Every argument must be an integer.')
return 1
# Creating threads
average_thread = threading.Thread(target=calculate_average, args=(numbers,))
minimum_thread = threading.Thread(target=calculate_minimum, args=(numbers,))
maximum_thread = threading.Thread(target=calculate_maximum, args=(numbers,))
# Starting the threads
average_thread.start()
minimum_thread.start()
maximum_thread.start()
# Waiting for the threads
average_thread.join()
minimum_thread.join()
maximum_thread.join()
# Printing the results
global average_result, minimum_result, maximum_result
print('The average value is %d' % average_result)
print('The minimum value is %d' % minimum_result)
print('The maximum value is %d' % maximum_result)
return 0
if __name__ == '__main__':
exit(main())