Help with an 8th grade science project

2014-11-20 Thread dave em
Hello,

I am the adult advisor (aka father) to an 8th grader who is doing a science 
project that will compare / benchmark CPU performance between an AMD 64 Phenom 
II running Ubuntu 14.04 and a Raspberry Pi 700MHz ARM.

Basic procedure:
-  Run a Python script on both computers that that stresses the CPU and measure
--  Time to complete the calculation
-- Max CPU during the calculation
-- We have chosen to do factorials and compare performance by running 
calculations by order of magnitude.  Our hypothesis is that we will begin to 
see a wider performance gap between the two computers as the factorials 
increase in order of magnitude.

Status:
-  We have a working program.  Pseudo code follows:

import linux_metrics
from linux_metrics import cpu_stat
import time

print 'Welcome to the stress test'
number = raw_input(Enter the number to compute the factorial:)

## function to calculate CPU usage percentage
def CPU_Percent():
cpu_pcts = cpu_stat.cpu_percents(.25)
print 'cpu utilization: %.2f%%' % (100 - cpu_pcts['idle'])
write cpu utilization to a csv file with g.write 

## function to compute factorial of a given number
def factorial(n):
num = 1
while n = 1:
num = num * n
CPU_Percent()  This is the function call irt Q 1 below 
n = n - 1
return num

# Main program
Record start time by using time.time()
Call function to compute the factorial.
Record finish time by using time.time()
write time to compute to a file f.write(totalEndTime - totalStartTime)
print (Execution time = , totalEndTime - totalStartTime)


Questions:
1.  In the factorial() function we call the CPU_Percent() function and write 
the CPU utilization value to a file.
-  Is this a correct value or will the CPU utilization below lower because the 
factorial() function made its calculation and is now just checking the CPU 
utilization?
-  If we are not getting the true max CPU utilization, can someone offer a 
design change to accomplish this?

2.  What unit does time.time() use?  An example for calculating the factorial 
of 10 is our program gives:
  Execution time = ', 1.5703258514404297  I presume this is telling us it took 
1.57 seconds to complete the calculation?

Thanks in advance for any help / suggestions.

Best regards,
Dave
-- 
https://mail.python.org/mailman/listinfo/python-list


converting strings to hex

2014-04-03 Thread dave em
Hello,

I am taking a cryptography class and am having a tough time with an assignment 
similar to this.

Given plain text message 1 and cipher 1 compute cipher 2 for message 2

Work flow will be:
- figure out the key
- use key to compute c2

So this is what I have so far and am getting nowhere fast.  I could use a 
little help on this one.

So my first step is to compute the key.  I suspect my error below is because c1 
is a float and m1 is a string but I don't know how to turn the string into a 
float.


  Python 2.7###

m1text=my test message
print( m1text + ' in hex is ')
print m1text.encode(hex)
m1 = m1text.encode(hex)
c1=0x6c73d5240a948c86981bc294814d 

k=m1^c1
print( 'the key = ' )
print hex(k)

This code yields the following:

my test message in hex is 
6d792074657374206d657373616765
Traceback (most recent call last):
  File /media/.../Crypto/Attackv2.py, line 10, in module
k=m1^c1
TypeError: unsupported operand type(s) for ^: 'str' and 'long'

Any help is most appreciated.

Dave
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: converting strings to hex

2014-04-03 Thread dave em
On Thursday, April 3, 2014 8:31:42 PM UTC-6, Tim Chase wrote:
 On 2014-04-03 19:10, dave em wrote:
 
  So my first step is to compute the key.  I suspect my error below
 
  is because c1 is a float and m1 is a string but I don't know how to
 
  turn the string into a float.
 
 
 
 For the record, c1 in your example should be an integer/long
 
 
 
 It sounds like you want the optional parameter to int() so you'd do
 
 
 
  hex_string = My text message.encode(hex)
 
  hex_string
 
 '4d792074657874206d657373616765'
 
  m1 = int(hex_string, 16)  # magic happens here
 
  m1
 
 402263600993355509170946582822086501L
 
  c1=0x6c73d5240a948c86981bc294814d 
 
  c1
 
 2199677439761906166135512011931981L
 
  k = m1 ^ c1
 
  k
 
 400239414552556350237329405469124136L
 
  hex(k) # as a string
 
 '0x4d1553a14172e0acebfd68b1f5e628L'
 
 
 
 
 
 -tkc

Thanks, got it.  Sometimes the simple things can be difficult.

Dave
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: converting strings to hex

2014-04-03 Thread dave em

 You haven't seen nothing yet, wait till M.L. catches you on the flip 
 
 side for using gg.   {running for cover}


Who is ML?
-- 
https://mail.python.org/mailman/listinfo/python-list


Explanation of list reference

2014-02-14 Thread dave em
Hello,

Background:  My twelve y/o son and I are still working our way through Invent 
Your Own Computer Games with Python, 2nd Edition.
(We finished the Khan Academy Javascript Tutorials is the extent of our 
experience)

He is asking a question I am having trouble answering which is how a variable 
containing a value differs from a variable containing a list or more 
specifically a list reference.

I tried the to explain as best I can remember is that a variable is assigned to 
a specific memory location with a value inside of it.  Therefore, the variable 
is kind of self contained and if you change the variable, you change the value 
in that specific memory location.

However, when a variable contains a list reference, the memory location of the 
variable points to a separate memory location that stores the list.  It is also 
possible to have multiple variable that point to the memory location of the 
list reference.  And all of those variable can act upon the list reference.

Question:  Is my explanation correct?  If not please set me straight :)

And does anyone have an easier to digest explanation?

Thanks in advance,
Dave
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Explanation of list reference

2014-02-14 Thread dave em
On Friday, February 14, 2014 11:26:13 AM UTC-7, Jussi Piitulainen wrote:
 dave em writes:
 
 
 
  He is asking a question I am having trouble answering which is how a
 
  variable containing a value differs from a variable containing a
 
  list or more specifically a list reference.
 
 
 
 My quite serious answer is: not at all. In particular, a list is a
 
 value.
 
 
 
 All those pointers to references to locations are implementation
 
 details. The user of the language needs to understand that an object
 
 keeps its identity when it's passed around: passed as an argument,
 
 returned by a function, stored in whatever location, retrieved from
 
 whatever location.

Jessi,

Thanks for your quick response.  I'm still not sure we understand.  The code 
below illustrates the concept we are trying to understand.

Case 1: Example of variable with a specific value from P 170 of IYOCGWP

 spam = 42
 cheese = spam
 spam = 100
 spam
100
 cheese
42

Case 2: Example of variable with a list reference from p 170

 spam = [0, 1, 2, 3, 4, 5]
 cheese = spam
 cheese[1] = 'Hello!'
 spam
[0, 'Hello!', 2, 3, 4, 5]
 cheese
[0, 'Hello!', 2, 3, 4, 5]

What I am trying to explain is this, why in case 1 when acting on spam 
(changing the value from 42 to 100) only affects spam and not cheese.  
Meanwhile, in case two acting on cheese also affects spam.


Thanks and v/r,
Dave
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Explanation of list reference

2014-02-14 Thread dave em
All,

Thanks for the excellent explanations and for sharing your knowledge.  I 
definitely have a better understanding than I did this morning.

Best regards,
Dave
-- 
https://mail.python.org/mailman/listinfo/python-list


Help with TypeError: Can't convert 'list' object to str implicitly

2014-02-05 Thread dave em
Hello,

Background.  My 11 y/o son and I have taken on the task to learn python and 
work our way through the http://inventwithpython.com/chapters/ book.
-  We are currently on Chapter 9 and trying to modify the hangman program.

- the first challenge was to modify the word list into a dictionary.  So we 
changed our words variable into a dictionary
--  I believe we did this correctly.

-  But we somehow broke the game.  All of the words are only two letters and 
the program crashes on exit with the following error.

 Traceback (most recent call last):
  File /media/.../Python/hangman.py, line 155, in module
print('You have run out of guesses! \n After ' + str(len(missedLetters)) + 
' missed guesses and ' + str(len(correctLetters)) + ' correct guesses, the word 
was ' + secretWord + '')
TypeError: Can't convert 'list' object to str implicitly

-I can't see why this wouldn't work.  By definition isn't this the cast:

1)  len(correctLetters) //returns the lengths of the variable as an int
2)  str(len(correctLetters)) // converts the integer into a string.

Applicable code is here:
 # Check if player has guessed too many times and lost
if len(missedLetters) == len(HANGMANPICS) - 1:
displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord)
print('You have run out of guesses! \n After ' + 
str(len(missedLetters)) + ' missed guesses and ' + str(len(correctLetters)) + ' 
correct guesses, the word was ' + secretWord + '')
gameIsDone = True

Any help to get us past this error message is most appreciated.

Thanks in advance,
Dave
-- 
https://mail.python.org/mailman/listinfo/python-list


[Solved]Re: Help with TypeError: Can't convert 'list' object to str implicitly

2014-02-05 Thread dave em
On Wednesday, February 5, 2014 7:21:29 PM UTC-7, dave em wrote:
 Hello,
 
 
 
 Background.  My 11 y/o son and I have taken on the task to learn python and 
 work our way through the http://inventwithpython.com/chapters/ book.
 
 -  We are currently on Chapter 9 and trying to modify the hangman program.
 
 
 
 - the first challenge was to modify the word list into a dictionary.  So we 
 changed our words variable into a dictionary
 
 --  I believe we did this correctly.
 
 
 
 -  But we somehow broke the game.  All of the words are only two letters and 
 the program crashes on exit with the following error.
 
 
 
  Traceback (most recent call last):
 
   File /media/.../Python/hangman.py, line 155, in module
 
 print('You have run out of guesses! \n After ' + str(len(missedLetters)) 
 + ' missed guesses and ' + str(len(correctLetters)) + ' correct guesses, the 
 word was ' + secretWord + '')
 
 TypeError: Can't convert 'list' object to str implicitly
 
 
 
 -I can't see why this wouldn't work.  By definition isn't this the cast:
 
 
 
 1)  len(correctLetters) //returns the lengths of the variable as an int
 
 2)  str(len(correctLetters)) // converts the integer into a string.
 
 
 
 Applicable code is here:
 
  # Check if player has guessed too many times and lost
 
 if len(missedLetters) == len(HANGMANPICS) - 1:
 
 displayBoard(HANGMANPICS, missedLetters, correctLetters, 
 secretWord)
 
 print('You have run out of guesses! \n After ' + 
 str(len(missedLetters)) + ' missed guesses and ' + str(len(correctLetters)) + 
 ' correct guesses, the word was ' + secretWord + '')
 
 gameIsDone = True
 
 
 
 Any help to get us past this error message is most appreciated.
 
 
 
 Thanks in advance,
 
 Dave

Fixed the error and am now onto the next issue.

Solution was to return a list (I think) and then break out the components of 
the list and put in the variable.  Here is how we did it:

secretWord = getRandomWord(words)
print('The secretWord is ' + str(secretWord[0]))
print('The secretKey is ' + str(secretWord[1]))
#Change secretWord from a list to a str
secretWord = secretWord[1] 


def getRandomWord(wordDict):
# This function returns a random string from the passed dictionary of lists 
of strings, and the key also.
# First, randomly select a key from the dictionary:
wordKey = random.choice(list(wordDict.keys()))
print('The wordKey is ' + wordKey)
# Second, randomly select a word from the key's list in the dictionary:
wordIndex = random.randint(0, len(wordDict[wordKey]) - 1)
print('The wordIndex is ' + str(wordIndex))
print('The word is ' + wordDict[wordKey][wordIndex])
return [wordDict[wordKey][wordIndex], wordKey]

Cheers,
Dave
-- 
https://mail.python.org/mailman/listinfo/python-list