首页 > 解决方案 > TypeError:左操作数必须是 str

问题描述

我正在为 CodeHS 的 Python 入门课程开发一个项目,但我无法弄清楚为什么这部分代码会产生错误消息或根本不起作用。

我试过删除变量破折号,没有它,程序可以正常工作。出于某种原因,这个新变量会导致代码的最后部分出现问题。

secret_word = "banana"
x = 0
dashes = ""
wordlist = list(secret_word)

for x in range(len(secret_word)):
    dashes = dashes + "-"


def get_guess():
    while x < 1:
        guess = input("Guess: ")

        if len(guess) > 1:
            print "Your guess must have exactly one character!"
        elif not guess.islower():
            print "Your guess must be a lowercase letter"
        else:
            return guess


while dashes != secret_word:
    print dashes
    guess = get_guess()

    if guess in wordlist:
        print "That letter is in the word"
    else:
        print "That letter is not in the word"

我希望程序要求输入来猜测单词中的一个字母;但是,该程序要么永远运行,要么我遇到错误消息。该程序未完成;任何帮助修复此错误消息或使其运行更顺利将不胜感激!

标签: python

解决方案


x在这里定义:

secret_word = "banana"
x = 0
dashes = ""
wordlist = list(secret_word)

并在这里重新分配值:

for x in range(len(secret_word)):
    dashes = dashes + "-"

那么循环的条件总是False在这里。所以get_guess()什么也不做。

def get_guess():
    while x < 1:
        guess = input("Guess: ")

这是一个很好的例子来说明短变量名和全局变量是多么危险。


推荐阅读