2016-12-04 3 views
2

Я пытаюсь сделать это: ваш ввести слово, как это: Днем и чем программа возвращает нечто вроде: Yppah или appHy.Как сделать эту программу на python?

Проблема заключается в том, что я получаю только одну букву: у или H, и т.д ..

import random 
def myfunction(): 
    """change letter's position""" 
    words = input("writte one word of your choice? : ") 
    words = random.choice(words) 
    print('E-G says : '+ words) 
+0

Вы хотите, чтобы слово было просто отменено? – ettanany

+1

random.choice() выбирает одну букву. Вы можете отменить это слово или сделать другое преобразование, о котором вы упоминали. Happy apphy, сохраните их в списке слов, чем использовать random.choice в этом списке. Вуаля. – Dilettant

ответ

6

Вы должны использовать sample, не choice.

import random 
# it is better to have imports at the beginning of your file 
def myfunction(): 
    """change letter's position""" 
    word = input("writte one word of your choice? : ") 
    new_letters = random.sample(word, len(word)) 
    # random.sample make a random sample (without returns) 
    # we use len(word) as length of the sample 
    # so effectively obtain shuffled letters 
    # new_letters is a list, so we have to use "".join 
    print('E-G says : '+ "".join(new_letters)) 
+0

Большое спасибо за ваше объяснение! :) –

5

Использование random.shuffle на преобразование строки в списке (работает на месте)

Затем преобразовать обратно в строку, используя str.join

import random 

s = "Happy" 

sl = list(s) 
random.shuffle(sl) 

print("".join(sl)) 

выходы:

pyapH 
Hpayp 
+0

Это тоже работает, спасибо! :) –

1

Если вы хотите напечатать обратное слово, это будет самый быстрый подход:

print(input("writte one word of your choice? : ")[::-1]) 
+0

, но OP этого не хочет. –

Смежные вопросы