【问题标题】:Python print(end = "" ) error [duplicate]Python print(end =“”)错误[重复]
【发布时间】:2016-04-16 23:05:47
【问题描述】:

我在学习在线视频的同时编写此代码。运行代码后出现的问题是最后一个 else 缩进和print("string",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 = "" 时,程序运行,但返回时中断。

【问题讨论】:

  • print(string, [end]) 语法仅适用于 Python 3,因为这是唯一一个 print 是函数的版本。你在用什么?
  • 检查你的缩进 - 特别是你的 while 和 for 语句在第 14-16 行。
  • @AlexHall OP 说他正在按照视频教程中的说明进行操作。如果是批发复制,input 的存在不排除版本错误的可能性。 :)
  • “我遇到错误” – 请包含实际的错误消息和堆栈跟踪。
  • @AhmadHussien 请编辑问题以添加堆栈跟踪。现在你实际上已经破坏了堆栈跟踪,我们看不到 ^ 指向的位置!

标签: python


【解决方案1】:

您在 python 2.7 中使用 python 3 print 语法。如果您添加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

【讨论】:

  • 非常感谢您的帮助和支持(也感谢大家)。所以这主要是未来的导入问题,非常感谢。
猜你喜欢
  • 2020-12-13
  • 2021-04-08
  • 1970-01-01
  • 2011-12-12
  • 2022-01-21
  • 2019-09-30
  • 2020-07-28
  • 1970-01-01
相关资源
最近更新 更多