2016-04-16 9 views
-1

Я пишу этот код, изучая онлайн-видео. Проблема, как после запуска кода, я получаю ошибки с последним отступом и print("string",end = ""). Я просто не могу понять конечную ошибку, которая продолжает появляться.Ошибка Python print (end = "")

import random 
# Make a list of words 
words = ['apple','banana','orange','coconut','strawberry','lime','grapefruit','lemon','kumquat', 'blueberry','melon'] 

while True: 
    start = input("Press enter/return to start, or enter Q to quit") 
    if start.lower() == 'q': 
      break 
    # Pick a Random Number 
    secret_word = random.choice(words) 
    bad_guesses = [] 
    good_guesses = [] 
    while len(bad_guesses) < 7 and len(good_guesses) != len(list(secret_words)): 
    # Draw guesses letters, spaces and strikes 
     for letter in secret_word: 
      if letter in good_guesses: 
       print(letter, end = "") 
      else: 
       print('_', end = "") 
       print('') 
       print('Strikes: {}/7'.format(len(bad_guesses))) 
       print('') 
       # Take guess 
       guess = input("Guess a letter: ").lower() 
       if len(guess) != 1: 
        print("You can only guess a single letter !") 
        continue 
       elif guess in bad_guesses or guess in good_guesses: 
        print("You've already guessed that letter !") 
        continue 
       elif not guess.isalpha(): 
        print("You can only guess letters !") 
        continue 
       if guess in secret_word: 
        good_guesses.append(guess) 
        if len(good_guesses) == len(list(secret_word)): 
         print("YOU WIN !! The word was{}".format(secret_word)) 
         break 
       else: 
        bad_guesses.append(guess) 

    else: 
     print("You didn't guess it! My secret word was {}".format(secret_word)) 

Это ошибка я получаю:

line 17 print(letter, end = "")^SyntaxError: invalid syntax Process finished with exit code 1 

А что касается версии Python, я пытаюсь как на 2.7 и 3.0.

Когда я удалил end = "", программа запустилась, но сломалась при возврате.

+0

Синтаксис 'print (string, [end])' работает только в Python 3, так как это единственная версия, где 'print' является функцией. Что вы используете? –

+0

Код имеет простой «ввод», которому разрешено возвращать '' q'', поэтому он должен быть Python 3. –

+0

Кроме того, рекомендуется всегда включать копию трассировки ошибки, а не ожидать, что мы запустим вашу код и воспроизвести ту же ошибку. –

ответ

0

Вы используете python 3 print синтаксис в python 2.7. Вы можете сделать это, если добавите from __future__ import print_function. Так что ваш сценарий будет начать, как это

from __future__ import print_function 
import random 
# Make a list of words 
words = ['apple','banana','orange','coconut','strawberry','lime','grapefruit','lemon','kumquat', 'blueberry','melon'] 

Кроме этого, вам нужно исправить опечатку в строке 13 (secret_words =>secret_word)

while len(bad_guesses) < 7 and len(good_guesses) != len(list(secret_word)): 

Тогда ваша программа работает нормально в Python 3, здесь является рабочим примером: https://repl.it/CG46

+0

Большое спасибо за вашу помощь и поддержку (для всех тоже). Так что это была главным образом проблема будущего импорта, благодаря кучу. –

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