2016-09-13 2 views
-3

Мне нужна помощь в этом, я новичок в python. мое назначение - создать программу, в которой пользователь выбирает категорию, а затем скремблировать слова из файла, находящегося в этой категории. Я просто хочу понять, почему эта первая часть не работает, первая часть является первым из четырех разных методов, которые выполняются в зависимости от того, какую категорию выбирает пользователь.выбор файла и чтение его слов python

print ("Instructions: Enter your chosen category, animals, places, names or colors.") 
viewYourFile = input("Enter your category") 

category = 'animals' 

if category == 'animals': 
    animals = open('animals.txt') 
    next = animals.read(1) 
    while next != "": 
     animal1 = animals.read(1) 
     animal2 = animals.read(2) 
     animal3 = animals.read(3) 
     animal4 = animals.read(4) 
     animal5 = animals.read(5) 
    animalList = ['animal1', 'animal2', 'animal3', 'animal4', 'animal5'] 
    chosenAnimal = random.choice(animalList) 
    animalLetters = list(chosenAnimal) 
    random.shuffle(animalLetters) 
    scrambledAnimal = ' '.join(animalLetters) 
    print(scrambledAnimal) 
    print("Enter the correct spelling of the word") 
+1

Ваш отступы повсюду; пожалуйста, исправьте. –

+0

Это лучше? – Naxty

+0

Не совсем. Этот код все равно не будет работать. – Prune

ответ

2

Первая проблема заключается в том, что вы читаете только 1-5 букв из файла. Пожалуйста, прочтите (документацию) [https://docs.python.org/2/tutorial/inputoutput.html] о том, как работает функция работает. Число в круглых скобках - это количество байтов, которое вы хотите прочитать.

Возможно, вам понадобится более простое решение, такое как чтение всего файла и разбиение его на слова. Это будет выглядеть примерно так:

file_contents = animals.read() 
animalList = file_contents.split() 

Если разделить новое для вас, то (смотреть) [https://docs.python.org/2/library/string.html] этот метод, а также.

Следующая проблема заключается в том, что вы установили список ваших животных в литеральные строки, а не на вводимые значения, которые вы читаете. Я думаю, вы хотите, чтобы строка была прочитана:

animalList = [animal1, animal2, animal3, animal4, animal5] 
Смежные вопросы