On 12Aug2019 15:11, Marissa Russo <[email protected]> wrote:
This is my code:
Thank you.
This is the output of my updated code:
Traceback (most recent call last):
File "/Applications/Python 3.7/exercises .py", line 37, in <module>
main()
File "/Applications/Python 3.7/exercises .py", line 33, in main
m = mean(data[0])
File "/Applications/Python 3.7/exercises .py", line 29, in mean
return(sum(nums)/len(nums))
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Thank you for this as well, it makes things much clearer.
So, to your code:
import math
Just a remark: you're not using anything from this module. I presume you
intend to later.
def get_numbers():
print("This program will compute the mean and standard deviation")
file1 = input("Please enter the first filename: ")
file2 = input("Please enter the second filename: ")
x = open(file1, "r")
y = open(file2, "r")
nums = x.readlines()
nums2 = y.readlines()
As has been mentioned in another reply, readlines() returns a list of
strings, one for each line of text in the file.
In order to treat these as numbers you need to convert them.
return nums, nums2
def to_ints(strings):
num_copy = []
for num in nums:
num_copy.append(float(num))
return num_copy
This returns a list of floats. You might want to rename this function to
"to_floats". Just for clarity.
return to_ints(nums), to_ints(nums2)
This isn't reached. I _think_ you need to put this line at the bottom of
the get_numbers function in order to return two lists of numbers. But it
is down here, not up there.
def mean(nums):
_sum = 0
return(sum(nums)/len(nums))
This is the line raising your exception. The reference to "+" is because
sum() does addition. It starts with 0 and adds the values you give it,
but you're handing it "nums".
Presently "nums" is a list of strings, thus the addition of the initial
0 to a str in the exception message.
If you move your misplaced "return to_ints(nums), to_ints(nums2)"
statement up into the get_numbers function you should be better off,
because then it will return a list of numbers, not strings.
Cheers,
Cameron Simpson <[email protected]>
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor