Re: NOOB coding help....

2005-02-22 Thread Igorati
Thank you, that does help quit a bit. I am working on the corrections now.
To the first poster... don't know what that meant. I thought I made my
case understandable. Thank you again. I will work on that. I was
attempting to open wade_stoddard... b/c that was my file I was working
with, and I was told I had to open it in order to save information to
another file so I could recall that information. Thank you again for the
help Steven.

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


Re: NOOB coding help....

2005-02-22 Thread Igorati
#This program will ask for a user to imput numbers. The numbers will then
be calculated
#to find the statistical mean, mode, and median. Finallly the user will be
asked
#if he would like to print out the answers.
numbers = [ ] 
print 'Enter numbers to add to the list. (Enter 0 to quit.)'
def getint():
 return int(raw_input('Number? '))

numbers = sorted(iter(getint, 0))

numbers
[2, 3, 5, 7]
def variable_median(x):
 
 return sorted(x)[len(x)//2]
def variable_mode(x):
 
 counts = {}
 for item in x:
 counts[x] = counts.get(x, 0) + 1
 
 return sorted(counts, key=counts.__getitem__, reverse=True)[0]



s = variableMean(numbers)
y = variableMedian(numbers)
t = variableMode (numbers)

import pickle
pickle.dump((s, y, t), file('avg.pickle', 'w'))


print 'Thank you! Would you like to see the results after calculating'
print 'The mode, median, and mean? (Please enter Yes or No)'
print 'Please enter Yes or No:'


if raw_input == yes:

f = open(avg.py,r)
avg.py = f.read()
print 'The Mean average is:', mean
print 'The Median is:', meadian
print 'The Mode is:', mode


I got the error:

Traceback (most recent call last):
  File C:\Python24\Lib\New Folder\Wade_StoddardSLP3-2.py, line 9, in ?
numbers = sorted(iter(getint, 0))
  File C:\Python24\Lib\New Folder\Wade_StoddardSLP3-2.py, line 7, in
getint
return int(raw_input('Number? '))
TypeError: 'str' object is not callable

and this one for my if statement:

Traceback (most recent call last):
  File C:\Python24\Lib\New Folder\Wade_StoddardSLP3-2.py, line 39, in ?
if raw_input == Yes:
NameError: name 'Yes' is not defined

I cannot understand how I can define yes so that when they type yes the
data is printed out. Also if they type no how do I make the program do
nothing. Or is that just infered.



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


Re: NOOB coding help....

2005-02-22 Thread Brian van den Broek
Igorati said unto the world upon 2005-02-22 03:51:
#This program will ask for a user to imput numbers. The numbers will then
be calculated
#to find the statistical mean, mode, and median. Finallly the user will be
asked
#if he would like to print out the answers.
numbers = [ ] 
print 'Enter numbers to add to the list. (Enter 0 to quit.)'
def getint():
 return int(raw_input('Number? '))

numbers = sorted(iter(getint, 0))
numbers
[2, 3, 5, 7]
def variable_median(x):
 
 return sorted(x)[len(x)//2]
def variable_mode(x):
 
 counts = {}
 for item in x:
 counts[x] = counts.get(x, 0) + 1
 
 return sorted(counts, key=counts.__getitem__, reverse=True)[0]


s = variableMean(numbers)
y = variableMedian(numbers)
t = variableMode (numbers)
import pickle
pickle.dump((s, y, t), file('avg.pickle', 'w'))
print 'Thank you! Would you like to see the results after calculating'
print 'The mode, median, and mean? (Please enter Yes or No)'
print 'Please enter Yes or No:'
if raw_input == yes:
f = open(avg.py,r)
avg.py = f.read()
print 'The Mean average is:', mean
print 'The Median is:', meadian
print 'The Mode is:', mode
I got the error:
Traceback (most recent call last):
  File C:\Python24\Lib\New Folder\Wade_StoddardSLP3-2.py, line 9, in ?
numbers = sorted(iter(getint, 0))
  File C:\Python24\Lib\New Folder\Wade_StoddardSLP3-2.py, line 7, in
getint
return int(raw_input('Number? '))
TypeError: 'str' object is not callable
and this one for my if statement:
Traceback (most recent call last):
  File C:\Python24\Lib\New Folder\Wade_StoddardSLP3-2.py, line 39, in ?
if raw_input == Yes:
NameError: name 'Yes' is not defined
I cannot understand how I can define yes so that when they type yes the
data is printed out. Also if they type no how do I make the program do
nothing. Or is that just infered.
Hi,
have you tried examining the objects you are trying to put together to 
see why they might not fit?

For instance, look what happens when you run this, entering 42 at the 
prompt:

ri = raw_input('Gimme!')
print type(ri)
print type(int(ri))
print ri == 42
print ri == '42'
name_not_defined_in_this_code
Does looking at the output of that help?
Best,
Brian vdB
--
http://mail.python.org/mailman/listinfo/python-list


Re: NOOB coding help....

2005-02-22 Thread bruno modulix
Igorati wrote:
#This program will ask for a user to imput numbers. The numbers will then
be calculated
#to find the statistical mean, mode, and median. Finallly the user will be
asked
#if he would like to print out the answers.

numbers = [ ] 
print 'Enter numbers to add to the list. (Enter 0 to quit.)'
so 0 is not a valid value ?
Since you only want numbers, any alpha char could be used to exit...
def getint():
 return int(raw_input('Number? '))
What happens if the user type foo ?
numbers = sorted(iter(getint, 0))
numbers
[2, 3, 5, 7]
def variable_median(x):
 
 return sorted(x)[len(x)//2]
def variable_mode(x):
 
 counts = {}
 for item in x:
 counts[x] = counts.get(x, 0) + 1
 
 return sorted(counts, key=counts.__getitem__, reverse=True)[0]


s = variableMean(numbers)
y = variableMedian(numbers)
t = variableMode (numbers)
import pickle
pickle.dump((s, y, t), file('avg.pickle', 'w'))
Take care of removing hard-coded filenames... (this is ok for testing 
but should not be released like this)

print 'Thank you! Would you like to see the results after calculating'
print 'The mode, median, and mean? (Please enter Yes or No)'
print 'Please enter Yes or No:'
if raw_input == yes:
First, raw_input() is a function, you need to use the () operator to 
*call* (execute) the function.

Then, raw_input() returns a string. A string is something between 
quotes. Yes is a symbol (a variable name, function name or like), not a 
string. And since this symbol is not defined, you have an exception.

What you want to do is to compare the string returned by the raw_input() 
function to the literral string Yes. What you're doing in fact is 
comparing two symbols, one being defined, the other one being undefined...

  if raw_input() == Yes:
f = open(avg.py,r)
Same remark as above about hard-coded file names...
avg.py = f.read()
Notice that the dot is an operator. Here you trying to access the 
attribute 'py' of an (actually inexistant) object named 'avg'. What you 
want is to bind the data returned by f.read() to a variable.

  data = f.read()

print 'The Mean average is:', mean
print 'The Median is:', meadian
print 'The Mode is:', mode
At this time, mean, meadian and mode are undefined symbols. Since you 
used the pickle module to persist your data, you should use it to 
unserialize'em too. The pickle module is well documented, so you may 
want to read the manual.

I got the error:
Traceback (most recent call last):
  File C:\Python24\Lib\New Folder\Wade_StoddardSLP3-2.py, line 9, in ?
numbers = sorted(iter(getint, 0))
  File C:\Python24\Lib\New Folder\Wade_StoddardSLP3-2.py, line 7, in
getint
return int(raw_input('Number? '))
TypeError: 'str' object is not callable
Can't tell you since I'm running python 2.3.x here (sorted() is new in 2.4)
and this one for my if statement:
Traceback (most recent call last):
  File C:\Python24\Lib\New Folder\Wade_StoddardSLP3-2.py, line 39, in ?
if raw_input == Yes:
NameError: name 'Yes' is not defined
See above.
I cannot understand how I can define yes so that when they type yes the
data is printed out. 
Yes = 'yes' ?-)
Also if they type no how do I make the program do
nothing. Or is that just infered.
May I suggest that you :
- subscribe to the 'tutor' mailing-list (it's a ml for absolute beginners)
- do some tutorials (there's one with the doc, and many others freely 
available on the net)
- use the interactive python shell to test bits of your code ?

HTH
Bruno
--
bruno desthuilliers
python -c print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for 
p in '[EMAIL PROTECTED]'.split('@')])
--
http://mail.python.org/mailman/listinfo/python-list


NOOB coding help....

2005-02-21 Thread Igorati
Ok, this is what I have so far:

#This program will ask for a user to imput numbers. The numbers will then
be calculated
#to find the statistical mean, mode, and median. Finallly the user will be
asked
#if he would like to print out the answers.
list = [ ] 
a = 1 
print 'Enter numbers to add to the list. (Enter 0 to quit.)'
while a != 0 :
a = input('Number? ')
list.append(a)
zero = list.index(0)
del list[zero]
list.sort() 

variableMean = lambda x:sum(x)/len(x)
variableMedian =  lambda x: x.sort() or x[len(x)//2]
variableMode = lambda x: max([(x.count(y),y) for y in x])[1]
s = variableMean(list)
y = variableMedian(list)
t = variableMode (list)

x = (s,y,t)
inp = open (Wade_StoddardSLP3-2.py, r)
outp = open (avg.py, w)
f = (avg.py)
for x in inp:
outp.write(x)
import pickle
pickle.dump(x, f)


print 'Thank you! Would you like to see the results after calculating'
print 'The mode, median, and mean? (Please enter Yes or No)'
raw_input('Please enter Yes or No:')
if raw_input == Yes:

f = open(avg.py,r)
avg.py = f.read()
print 'The Mean average is:', mean
print 'The Median is:', meadian
print 'The Mode is:', mode

I am attempting to make it so that I can save the mean, meadian, and mode
and then if the user wants the data to give it to him. Thank you for any
assistance you can provide!

Wade

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


Re: NOOB coding help....

2005-02-21 Thread Steven Bethard
Igorati wrote:
list = [ ] 
a = 1 
print 'Enter numbers to add to the list. (Enter 0 to quit.)'
while a != 0 :
a = input('Number? ')
list.append(a)
zero = list.index(0)
del list[zero]
list.sort() 
A simpler approach is to use the second form of the builtin iter 
function which takes a callable and a sentinel:

py def getint():
... return int(raw_input('Number? '))
...
py numbers = sorted(iter(getint, 0))
Number? 3
Number? 7
Number? 5
Number? 2
Number? 0
py numbers
[2, 3, 5, 7]
Note that I've renamed 'list' to 'numbers' so as not to hide the builtin 
type 'list'.

variableMean = lambda x:sum(x)/len(x)
variableMedian =  lambda x: x.sort() or x[len(x)//2]
variableMode = lambda x: max([(x.count(y),y) for y in x])[1]
s = variableMean(list)
y = variableMedian(list)
t = variableMode (list)
See Inappropriate use of Lambda in 
http://www.python.org/moin/DubiousPython.

Lambdas aside, some alternate possibilities for these are:
def variable_median(x):
# don't modify original list
return sorted(x)[len(x)//2]
def variable_mode(x):
# only iterate through x once (instead of len(x) times)
counts = {}
for item in x:
counts[x] = counts.get(x, 0) + 1
# in Python 2.5 you'll be able to do
# return max(counts, key=counts.__getitem__)
return sorted(counts, key=counts.__getitem__, reverse=True)[0]
Note also that you probably want 'from __future__ import divsion' at the 
top of your file or variableMean will sometimes give you an int, not a 
float.

x = (s,y,t)
inp = open (Wade_StoddardSLP3-2.py, r)
outp = open (avg.py, w)
f = (avg.py)
for x in inp:
outp.write(x)
import pickle
pickle.dump(x, f)
If you want to save s, y and t to a file, you probably want to do 
something like:

pickle.dump((s, y, t), file('avg.pickle', 'w'))
I don't know why you've opened Wade_StoddardSLP3-2.py, or why you write 
that to avg.py, but pickle.dump takes a file object as the second 
parameter, and you're passing it a string object, avg.py.

f = open(avg.py,r)
avg.py = f.read()
print 'The Mean average is:', mean
print 'The Median is:', meadian
print 'The Mode is:', mode
mean, median, mode = pickle.load(file('avg.pickle'))
print 'The Mean average is:', mean
print 'The Median is:', meadian
print 'The Mode is:', mode
HTH,
STeVe
--
http://mail.python.org/mailman/listinfo/python-list