Hello Alan, dear list members,

Alan Gauld wrote:
The solution you have already seen - use string.split(',') to separate
the string into substrings and then convert each substring to an
integer.
This I have now done by using eval(). But now I wonder whether that is actually clever because it is supposed to be similarly problematic as the input() function in terms of security. Alternatively I could use int() -- would that be the way forward?

Here is the code:

def main():
   import string

   print "This program takes the average of numbers you supply!!"

   amount = raw_input("How many numbers do you want me to work with? ")
   print "You want me to take the average of", amount, "numbers."

   numbers = raw_input("Please type the numbers, separated by commas: ")
   print "You want to know the average of the numbers:", numbers

   add = 0
   for numStr in string.split(numbers, ","):
       convNum = eval(numStr) # convert digit string to a number
       add = add + convNum # add number to variable 'add'
   print "The sum of your numbers is:", add
   average = add / float(amount)
   print "Therefore the average of your numbers is", average
main()

Many thanks,

David

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to