I am having trouble with a program in python...I need the program to jumble the middle of words while keeping the outer two letters intact...I believe I have successfully sp
You can use shuffle from the random package:
import random
letters = list(still_to_scramble)
random.shuffle(letters)
scrambled = ''.join(letters)
Here's how it would work:
>>> s
'$123abc$'
>>> first_letter = s[0]
>>> last_letter = s[-1]
>>> middle_parts = list(s[1:-1])
>>> random.shuffle(middle_parts)
>>> ''.join(middle_parts)
'b3a2c1'
Be careful and don't do this:
>>> middle_parts_random = random.shuffle(middle_parts)
shuffle works in place - that's a fancy way of saying it does't return the shuffled bit, but modifies it instead. It actually returns None, and you may get tripped up by it, since you won't see an error:
>>> middle_parts_random = random.shuffle(middle_parts)
>>> middle_parts_random # Huh? nothing is printed!
>>> middle_parts_random == None # Ah, that's why. Darn you in-place methods!
True