struggling with these problems

2013-01-29 Thread su29090
1.Given that  worst_offenders has been defined as a list with at least 6 
elements, write a statement that defines  lesser_offenders to be a new list 
that contains all the elements from index 5 of  worst_offenders and beyond. Do 
not modify  worst_offenders . 

I tried this but it didn't work:

lesser_offenders = worst_offenders[5:6]

2.Given a variable  temps that refers to a list, all of whose elements refer to 
values of type  float , representing temperature data, compute the average 
temperature and assign it to a variable named  avg_temp . Besides temps and  
avg_temp , you may use two other variables --  k and  total . 


I'm not sure about this one but this is what I have:

for k in range(len(temps)):
total += temps[k]

avg_temp = total / len(temps)

3.Associate the sum of the non-negative values in the list  numbers with the 
variable  sum . 

is it this:

for numbers in  sum:
if sum +=?

I'm confused at #3 the most

i'm not doing it in python 3.2.3 it's called Myprogramminglab.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: struggling with these problems

2013-01-29 Thread MRAB

On 2013-01-30 03:26, su29090 wrote:

1.Given that  worst_offenders has been defined as a list with at least 6 
elements, write a statement that defines  lesser_offenders to be a new list 
that contains all the elements from index 5 of  worst_offenders and beyond. Do 
not modify  worst_offenders .

I tried this but it didn't work:

lesser_offenders = worst_offenders[5:6]

Python uses half-open ranges (and counts from 0), which means that the 
start index is included and the end index is excluded.


Therefore, worst_offenders[5:6] means the slice from index 5 up to, but 
excluding, index 6; in other words, an empty list.


The question says and beyond; in Python you can just omit the end 
index to indicate everything up to the end.



2.Given a variable  temps that refers to a list, all of whose elements refer to 
values of type  float , representing temperature data, compute the average 
temperature and assign it to a variable named  avg_temp . Besides temps and  
avg_temp , you may use two other variables --  k and  total .


I'm not sure about this one but this is what I have:

for k in range(len(temps)):
total += temps[k]

avg_temp = total / len(temps)


You didn't set the initial value of total, which is 0.


3.Associate the sum of the non-negative values in the list  numbers with the 
variable  sum .

is it this:

for numbers in  sum:
if sum +=?

I'm confused at #3 the most


Well, that's not valid Python.

What you want to do is to add each number from the list to the sum only 
if it's non-negative, i.e. greater than or equal to 0.



i'm not doing it in python 3.2.3 it's called Myprogramminglab.


Have a look at Dive Into Python:
http://www.diveintopython.net/

--
http://mail.python.org/mailman/listinfo/python-list


Re: struggling with these problems

2013-01-29 Thread Steven D'Aprano
On Wed, 30 Jan 2013 03:59:32 +, MRAB wrote:

 Python uses half-open ranges (and counts from 0), which means that the
 start index is included and the end index is excluded.
 
 Therefore, worst_offenders[5:6] means the slice from index 5 up to, but
 excluding, index 6; in other words, an empty list.

Er, no. It's a one-element list: index 5 is included, index 6 is excluded.

py L = list(abcdefgh)
py L[5:6]
['f']




-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list