2015-06-05 4 views
-1

Итак, я начал изучать Python в codecademy, и я пытаюсь создать программу, в которой вы вводите слово, и оно сворачивает его для вас. Однако у меня возникли проблемы с выяснением, как это сделать. Это то, что у меня есть до сих пор.Python help random shuffler

#Scrambler is a game that will take a given word and scramble it 
print ("Welcome to Scrambler!") 

word = input("Enter a word:") 

if len(word) > 0 and word.isalpha(): 
print (random.shuffle (word)) 
elif word.isalpha == False: 
print ("Sorry, please try again") 
else: 
print ("Sorry, please try again") 

* он говорит, что «случайный» не определен, но я посмотрел команды в Python, и он говорит, что random.shuffle() является встроенной функцией.

+1

'random.shuffle()' не встроенный; вам нужно сначала «импортировать случайные». –

ответ

2

random - это модуль, который включен в стандартную библиотеку Python, но для доступа к его функциям все еще требуется инструкция «import».

дополнительно random.shuffle() работает только с итерами и не работает со строками. вы могли бы разделить слово на список, перетасовать его, а затем объединить его вместе.

import random 

print ("Welcome to Scrambler!") 

word = input("Enter a word:") 

if len(word) > 0 and word.isalpha(): 
    letters = [i for i in word] 
    random.shuffle(letters) 
    print (''.join(letters)) 
elif word.isalpha == False: 
    print ("Sorry, please try again") 
else: 
    print ("Sorry, please try again") 
+0

Довольно хорошо, вы забудете добавить скобки на второй isalpha :-) –

2

Понадобится:

  1. импорт случайным, как другие сказали
  2. использовать список для random.shuffle
  3. перетасовка изменить список в месте, таким образом расщепляется в две строки, перемешайте затем распечатать
  4. скобки отсутствуют у вас второй звонок isalpha
  5. Ваш выпад был нарушен

Так что результат будет:

import random 
#Scrambler is a game that will take a given word and scramble it 
print ("Welcome to Scrambler!") 

word = input("Enter a word:") 

if len(word) > 0 and word.isalpha(): 
    wordaslist = list(word) 
    random.shuffle(wordaslist) 
    print (''.join(wordaslist)) 
elif word.isalpha() == False: 
    print ("Sorry, please try again") 
else: 
    print ("Sorry, please try again") 
+0

Почему мой код не похож на код? –

+0

Найдено, почему: http://meta.stackexchange.com/questions/3327/code-block-is-not-properly-formatted-when-placed-immediately-after-a-list-item –