Programs for different language learning - Python
You should use len rather than hard-code the length of choices.
You should use str.format to add lang into the string. 'there are {} languages'.format(lang).
You mix print '' and print(''). Pick one or the other. The former is preferred in Python2, the latter in Python3.
Reduce the amount of prints. They are slow, and merging them into one is much faster.
You should use raw_input().lower(), so that the user can enter 'rUBy'. Where it converts it to lower case, 'ruby'.
Use elif not else. If I enter C, I don't want to be told I entered Python.



  In Python is there a equivalent to Ruby's puts?


In Python2 and 3 you can use '\n'.join(list).
In Python3 you can use print(*list, sep='\n').


  In the function print random.choice(["Perl", "Ruby"]) is there a way I can pull from the array instead of having to write out language names


You may mean filter the list, so it does not include 'Python'.

random.choice(filter(lambda lang: lang != "Python", choices))




import random

def welcome():
    choices = ["Perl", "Python", "Ruby"]
    user_choice = raw_input(
        (
            "Welcome, to the test script, this will test what language you "
            "would like to learn.. In order to find out these choices, write "
            "this same definition in all three different languages\n\n"
            "There are {} languages to choose from please pick one\n"
            "{}"
        ).format(len(choices), choices)
    ).lower()

    if user_choice == "ruby":
        print "You have chosen Ruby!\n"
    elif user_choice == "perl":
        print "You have chosen Perl!\n"
    else user_choice == "python":
        print "You're already writing in Python!!Let me choose for you! \n{}".format(
            random.choice(["Perl", "Ruby"]))
    else:
        print "Invalid choice."

welcome()