would this be a possible use of a list and appending even though I recieve
an error from it:

def main():
     x = [1]
     x[0] = input('enter an int to start your syracuse sequence\n')
     while not isinstance(x[0], int):
         x[0] = input('no, please enter an int to start your syracuse
sequence\n')
     while x[-1] != 1:
         if ((x[-1] % 2) == 0):
             x.append(x[-1] / 2)
         else:
             x.append((3 * x) + 1)
     print len(x), x

    print "The Syracuse sequence of your starting value is:", x

main()

line 10, in main
    x.append((3 * x) + 1)
TypeError: can only concatenate list (not "int") to list
>>>



> [EMAIL PROTECTED] wrote:
>> hello,
>>
>> Could I gather all of the values from print x into a string or a range?
>> Since, I am not familiar with lists yet.
>
> Here is a simple example of gathering values into a list and making a
> string:
>  >>> r=[] # Start with an empty list
>  >>> for x in range(3): # x will be 0, 1, 2 in sequence
>  ...   r.append(str(x*x)) # Put x*x (as a string) onto r
>  ...
>  >>> r
> ['0', '1', '4']
>  >>> ', '.join(r) # make a single string by joining the elements of r with
> ', '
> '0, 1, 4'
>
> Kent
>
>>
>>
>> def main():
>>         x = input("Please enter a positive starting value: ")
>>          while x != 1:
>>              if x%2 == 0:
>>                  x = x/2
>>             else:
>>                 x = x*3+1
>>             print x
>>     print "The Syracuse sequence of your starting value is:", x
>>
>> main()
>>
>>
>>
>>
>> ----- Original Message -----
>> From: "Frank Bloeink" <[EMAIL PROTECTED]>
>> To: <[EMAIL PROTECTED]>
>> Sent: Friday, October 28, 2005 5:06 AM
>> Subject: Re: [Tutor] syracuse sequence (collatz or hailstone)
>>
>>
>>
>>>Hey,
>>>
>>>your code seems almost alright to me, except that in your case it's only
>>>printing the last number of your sequence, which obviously is not what
>>>you want. Quick fix would be to insert a line "print x" just below else
>>>statement:
>>>---snip--
>>> else:
>>>   x=x*3+1
>>> print x
>>>---snip
>>>This should make clear where the error is: You are just calculating, but
>>>not printing the sequence!
>>>If you want to leave the output to the end of the program you could as
>>>well gather all the calculated values in a list or similar structure and
>>>then print the contents of the list..
>>>
>>>hth Frank
>>>
>>>On Fri, 2005-10-28 at 01:22 -0400, [EMAIL PROTECTED] wrote:
>>>
>>>>Hello
>>>>
>>>>I am trying to create a program that will calculate the syracuse
>>>> sequence
>>>>which is also known as collatz or hailstone. the number that is input
>>>> by
>>>>the user may be either even or odd. the number goes through a series of
>>>>functions which are x/2 if the number is even and 3x+1 if the number is
>>>>odd. it keeps doing so until the number reaches 1. An example would be
>>>> if
>>>>the user inputed 5 they should recieve: 5, 16, 8, 4, 2, 1 as the
>>>> sequence
>>>>for the value that they started with. My code currently just prints a 1
>>>>and none of the numbers that would have preceded it. any ideas on how I
>>>>could get the program to not do this would be greatly appreciated.
>>>>
>>>>
>>>>def main():
>>>>    try:
>>>>        x = input("Please enter a starting value: ")
>>>>        while x != 1:
>>>>
>>>>            if x%2 == 0:
>>>>                x = x/2
>>>>            else:
>>>>                x = x*3+1
>>>>
>>>>    except ValueError, excObj:
>>>>        msg = str(excobj)
>>>>        if msg == "math domain error":
>>>>            print "No negatives or decimals."
>>>>        else:
>>>>            print "Something went wrong."
>>>>
>>>>
>>>>
>>>>    print "The Syracuse sequence of your starting value is:", x
>>>>
>>>>main()
>>>>
>>>>
>>>>_______________________________________________
>>>>Tutor maillist  -  Tutor@python.org
>>>>http://mail.python.org/mailman/listinfo/tutor
>>>
>>>
>>>
>>
>> _______________________________________________
>> Tutor maillist  -  Tutor@python.org
>> http://mail.python.org/mailman/listinfo/tutor
>>
>>
>
> --
> http://www.kentsjohnson.com
>
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> http://mail.python.org/mailman/listinfo/tutor
>


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

Reply via email to