开发者

Need guidance with logic programming in Python

开发者 https://www.devze.com 2023-02-04 23:43 出处:网络
I have been struggling to create 2 very small logic applications in Python. I am very new to programming and could definitely use some of your guidance, as this would possibly be very easy to someone

I have been struggling to create 2 very small logic applications in Python. I am very new to programming and could definitely use some of your guidance, as this would possibly be very easy to someone with experience.

The first is a small program which is to calculate statistical equations based on numbers input into the program, and output results into a small table. Here is the PDF of the task:

http://xboxflashing.com/cw2010.pdf

I have managed to do all but the very last part of task 1 - everything works fine except I am not sure how to go about setting out the ranges. I had an if / elif setup, adding to a count (to count how many are in the range) - then having the count displayed under table headings, however the result displayed always came out incorrectly. Hence, I am guessing I am going about this the wrong way or overcomplicating things possibly.

Any advice on how to go about this would be greatly appreciated.

Secondly, the pendulum task is boggling my mind. I have very limited experience with Python, and am having trouble getting my head around how to set out the code for what is being asked.

If you could guide me on how to set things out, that would be amazing and a massive help to me. I am not lookin开发者_开发技巧g for the actual answers - I can find the syntax for it myself in my textbooks, I just really need help on how to begin to set out the solution . Any help at all on task two would be massively beneficial to me.

Thank you for your time.

If you require any further information - please let me know.


How about this?

n = int(raw_input("How many numbers?"))
nums = []
for i in range(n):
    nums[i] = float(raw_input("Enter %i th numnber >" %i))
s = sum(nums)
s2 = sum(map(lambda x:x*x,nums))
mu = s/n
mu2 = s2/n
sigma = (mu2-mu)**(0.5)
error_in_mean = sigma/(n)**(0.5)

print "x_i\tx_i-mu\t(x_i-mu)/sigma"
for x in nums:
    print "%f\t%f\t%f" %(x,x-mu,(x-mu)/sigma)

absdiff = map(lambda x:abs(x-mu),nums)
n_0 = sum(map(lambda x:(x<=sigma) , absdiff))
n_1 = sum(map(lambda x:(x>sigma)and(x<=2*sigma) , absdiff))
n_2 = sum(map(lambda x:(x>2*sigma)and(x<=3*sigma) , absdiff))
n_3 = sum(map(lambda x:(x>3*sigma) , absdiff))

print "Within 1 sigma: ",n_0
print "Between 1 and 2 sigma: ",n_1
print "Between 2 and 3 sigma: ",n_2
print "Beyond 3 sigma: ",n_3
print "Within 1 sigma: ",n_0


For the first problem, a simple implementation without any bells or whistles:

numbers = []    
n = int(raw_input("Enter the amount of numbers: "))
for i in range(n):
    num = float(raw_input("Enter number %d: " % d))
    numbers.append(num)

# Calculate the statistical values here

within_1_stddev = 0
within_2_stddev = 0
within_3_stddev = 0
outside_3_stddev = 0

for num in numbers:
    if (avg - stddev) <= num < (avg + stddev):
        within_1_stddev += 1
    elif (avg - 2 * stddev) < num <= (avg - stddev) or (avg + stddev) <= num < (avg + 2 * stddev):
        within_2_stddev += 1
    elif (avg - 3 * stddev) < num <= (avg - 2 * stddev) or (avg + 2 * stddev) <= num < (avg + 3 * stddev):
        within_3_stddev += 1
    else:
        outside_3_stddev += 1

# Output here

For the second one, it's not exactly easy - I sort of dislike pyplotlib myself for the simple reason that it can be very overwhelming at times. Sure it can do just about anything, but... :)

# Imports here

# Make a small menu here that sets the initial variables, with raw_input and
# a simple if-else structure, I guess?

timesteps = []
omegas = []
thetas = []

# Here goes the code from the PDF, but inside the loop add something like
    timesteps.append(t)
    omegas.append(omega)
    thetas.append(theta)

# Now you have the time, omega and theta in corresponding indexes at the
# timesteps, omegas and thetas variables.

# Do the plot here (consult the tutorial as suggested in the PDF)
# pyplot.show() (if I remember the name correctly) might be quite helpful here
0

精彩评论

暂无评论...
验证码 换一张
取 消