<font size=2 face="sans-serif">I am new to python. I like to calculate
average of the numbers by reading the file 'digi_2.txt'. I have written
the following code:</font>
<br>
<br><font size=2 face="sans-serif">def average(s): return sum(s) * 1.0
/ len(s)</font>
<br>
<br><font size=2 face="sans-serif">f = open ("digi_2.txt", "r+")</font>
<br>
<br><font size=2 face="sans-serif">list_of_lists1 = f.readlines()</font>
<br>
<br>
<br><font size=2 face="sans-serif">for index in range(len(list_of_lists1)):</font>
<br><font size=2 face="sans-serif">    </font>
<br>
<br><font size=2 face="sans-serif">    tt = list_of_lists1[index]</font>
<br>
<br><font size=2 face="sans-serif">    print 'Current value :',
tt</font>
<br>
<br><font size=2 face="sans-serif">avg =average (tt)</font>
<br>
<br>
<br><font size=2 face="sans-serif">This gives an error:</font>
<br>
<br><font size=2 face="sans-serif">def average(s): return sum(s) * 1.0
/ len(s)</font>
<br><font size=2 face="sans-serif">TypeError: unsupported operand type(s)
for +: 'int' and 'str'</font>
<br>
<br><font size=2 face="sans-serif">I also attach the file i am reading.</font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif"><b>Please help to rectify.</b></font>
<br>
<br><font size=2 face="sans-serif">Regards,<br>
Arijit Ukil<br>
Tata Consultancy Services<br>
Mailto: arijit.ukil@tcs.com<br>
Website: </font><a href=http://www.tcs.com/><font size=2 face="sans-serif">http://www.tcs.com</font></a><font size=2 face="sans-serif"><br>
____________________________________________<br>
Experience certainty.        IT Services<br>
                
       Business Solutions<br>
                
       Outsourcing<br>
____________________________________________</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">Alan Gauld <alan.gauld@btinternet.com></font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">tutor@python.org</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">03/21/2013 06:00 AM</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">Re: [Tutor] Help</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Sent by:</font>
<td><font size=1 face="sans-serif">"Tutor" <tutor-bounces+arijit.ukil=tcs.com@python.org></font></table>
<br>
<hr noshade>
<br>
<br>
<br><tt><font size=2>On 20/03/13 19:57, travis jeanfrancois wrote:<br>
> I create a function that allows the user to a create sentence by<br>
>   inputing  a string and to end the sentence with a  period
meaning<br>
> inputing "." .The problem is while keeps overwriting the
previuos input<br>
<br>
'While' does not do any such thing. Your code is doing that all by <br>
itself. What while does is repeat your code until a condition<br>
becomes false or you explicitly break out of the loop.<br>
<br>
> Here is my code:<br>
><br>
> def B1():<br>
<br>
Try to give your functions names that describe what they do.<br>
B1() is meaningless, readSentence() would be better.<br>
<br>
<br>
>   period = "."<br>
>   # The variable period is assigned<br>
<br>
Its normal programming practice to put the comment above<br>
the code not after it. Also comments should indicate why you<br>
are doing something not what you are doing - we can see that<br>
from the code.<br>
<br>
>   first = input("Enter the first word in your sentence ")<br>
>   next1 = input("Enter the next word in you sentence or
enter period:")<br>
<br>
>   # I need store the value so when while overwrites next1 with
the next<br>
> input the previous input is stored and will print output when I call
it<br>
> later along with last one<br>
>   # I believe the solution is some how implenting this expression
x = x+<br>
> variable<br>
<br>
You could be right. Addition works for strings as well as numbers.<br>
Although there are other (better) options but you may not have covered
<br>
them in your class yet.<br>
<br>
>   while  next1 != (period) :<br>
<br>
You don;t need the parentheses around period.<br>
Also nextWord might be a better name than next1.<br>
Saving 3 characters of typing is not usually worthwhile.<br>
<br>
>      next1  = input("Enter the next word
in you sentence or enter period:")<br>
<br>
Right, here you are overwriting next1. It's not the while's<br>
fault - it is just repeating your code. It is you who are<br>
overwriting the variable.<br>
<br>
Notice that you are not using the first that you captured?<br>
Maybe you should add next1 to first at some point? Then you<br>
can safely overwrite next1 as much as you like?<br>
<br>
>      if next1 == (period):<br>
<br>
Again you don;t need the parentheses around period<br>
<br>
>          next1 = next1 + period<br>
<br>
Here, you add the period to next1 which the 'if' has<br>
already established is now a period.<br>
<br>
>          print ("Your sentence is:",first,next1,period)<br>
<br>
And now you print out the first word plus next1 (= 2 periods) plus a <br>
period = 3 periods in total... preceded by the phrase "Your sentence
<br>
is:" This tells us that the sample output you posted is not from this
<br>
program... Always match the program and the output when debugging or you
<br>
will be led seriously astray!<br>
<br>
> PS : The" #"  is I just type so I can understand what
each line does<br>
<br>
The # is a comment marker. Comments are a very powerful tool that <br>
programmers use to explain to themselves and other programmers<br>
why they have done what they have.<br>
<br>
When trying to debug faults like this it is often worthwhile<br>
grabbing a pen and drawing a chart of your variables and<br>
their values after each time round the loop.<br>
In this case it would have looked like<br>
<br>
iteration                
period                
first                
next1<br>
0                
                 .
               
I                
am<br>
1                
                 .
               
I                
a<br>
2                
                 .
               
I                
novice<br>
3                
                 .
               
I                
..<br>
<br>
If you aren't sure of the values insert a print statement<br>
and get the program to tell you, but working it out in<br>
your head is more likely to show you the error.<br>
<br>
<br>
HTH,<br>
<br>
-- <br>
Alan G<br>
Author of the Learn to Program web site<br>
</font></tt><a href="http://www.alan-g.me.uk/"><tt><font size=2>http://www.alan-g.me.uk/</font></tt></a><tt><font size=2><br>
<br>
_______________________________________________<br>
Tutor maillist  -  Tutor@python.org<br>
To unsubscribe or change subscription options:<br>
</font></tt><a href=http://mail.python.org/mailman/listinfo/tutor><tt><font size=2>http://mail.python.org/mailman/listinfo/tutor</font></tt></a><tt><font size=2><br>
</font></tt>
<br>
<br><p>=====-----=====-----=====<br>
Notice: The information contained in this e-mail<br>
message and/or attachments to it may contain <br>
confidential or privileged information. If you are <br>
not the intended recipient, any dissemination, use, <br>
review, distribution, printing or copying of the <br>
information contained in this e-mail message <br>
and/or attachments to it are strictly prohibited. If <br>
you have received this communication in error, <br>
please notify us by reply e-mail or telephone and <br>
immediately and permanently delete the message <br>
and any attachments. Thank you</p>

<p></p>