On 12Aug2019 15:11, Marissa Russo <mruss...@u.rochester.edu> 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 <c...@cskk.id.au> _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor