15,168,423 members

See more:

Hey, I keep getting an error for my program and I just can't figure it out.

It's for the table part

This program is meant to find the time and avarage times for an experiment

When i don't use a function its fine, but when i do it isnt.

the part which doesnt work is

and the error is

**What I have tried:**

I've tried to change the data types but I just cant get it to run

It's for the table part

This program is meant to find the time and avarage times for an experiment

When i don't use a function its fine, but when i do it isnt.

Python

Copy Code

import pylab as pyl import numpy as np import sys print 'Times, Average Times, Velocity' tteb=np.zeros((3,7),dtype=float) pos=np.zeros((1,7),dtype=float) for r in range (0,7): print 'Band Position %d'%r pos[0,r]=float(raw_input('~')) posp=pos*(5.16667*10**(-4)) for j in range (0,3): k=j+1 print 'This is for trial %d' %k for i in range (0,7): print 'Input for band %d'%i tteb[j,i]=float(raw_input('~')) print 'Trials 1-3 for all 7 bands.:' print tteb raw_input('Press [Enter] to continue to average time and *velocity *(later).') ttebatvsum=tteb.sum(axis=0) print 'This is all the times added together. (Bands 0--->6).' print ttebatvsum print 'This is the average for all of the times. (Bands 0--->6).' ttebatvmean=ttebatvsum/3 print ttebatvmean raw_input('Press [Enter] to continue to velocity.') velocity=posp/ttebatvsum print 'Here are all the velocities. (Bands 0--->6).' print velocity #Table here def table(): print 'Pos (ml) |Pos (m) |t1 |t2 |t3 |t(avg) |v |' for k in range (0,7): print '%-8.3f |%-8.3f |%-8.3f |%-8.3f |%-8.3f |%-8.3f |%-8.3f |'%(pos[k],posp[k],tteb[0,k],tteb[1,k],tteb[2,k],ttebatvmean[k],velocity[k]) raw_input('Press [Enter] to see graph. Please note that graph will be opened in a new window.') #Graph here def graph(): ttebatvcumsum=ttebatvsum.cumsum() x=ttebatvcumsum y=velocity pyl.plot(x,y) pyl.xlabel('Cumalative Time from release of Sphere, t') pyl.ylabel('Velocity, v') pyl.show() def nextfunc(whattheysaid): option1=set(['y','yes','yeah','okay','ok','cool','mmmhhhmmm']) option2=set(['n','no','kys','obviously not','nope','dont disturb me']) keepgoing=whattheysaid if keepgoing in option1: table() graph() elif keepgoing in option2: print 'Exiting now!' sys.exit() else: print 'Please reply with yes or no. This program will now exit.' sys.exit() print 'Hey so now that youre done with that stuff, want to see the table and graph?' user_input=raw_input('Reply with Yes or No please. ~').lower() nextfunc(user_input)

the part which doesnt work is

Python

Copy Code

def table(): print 'Pos (ml) |Pos (m) |t1 |t2 |t3 |t(avg) |v |' for k in range (0,7): print '%-8.3f |%-8.3f |%-8.3f |%-8.3f |%-8.3f |%-8.3f |%-8.3f |'%(pos[k],posp[k],tteb[0,k],tteb[1,k],tteb[2,k],ttebatvmean[k],velocity[k]) raw_input('Press [Enter] to see graph. Please note that graph will be opened in a new window.')

and the error is

Copy Code

Traceback (most recent call last): File "C:\Users\Looi\Desktop\Stuff\School\ICT\Term 2\Python\Coursework\q5.py", line 84, in <module> nextfunc(user_input) File "C:\Users\Looi\Desktop\Stuff\School\ICT\Term 2\Python\Coursework\q5.py", line 73, in nextfunc table() File "C:\Users\Looi\Desktop\Stuff\School\ICT\Term 2\Python\Coursework\q5.py", line 55, in table print '%-8.3f |%-8.3f |%-8.3f |%-8.3f |%-8.3f |%-8.3f |%-8.3f |'%(pos[k],posp[k],tteb[0,k],tteb[1,k],tteb[2,k],ttebatvmean[k],velocity[k]) TypeError: float argument required, not numpy.ndarray

I've tried to change the data types but I just cant get it to run

Comments

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject,
20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8
+1 (416) 849-8900

`numpy.ndarray`

.