为什么我在格式字符串中遇到单一'}'错误

2024-10-01 17:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一些代码,看看打印出一个单词列表,我可以用字母“myLetters”组成,但由于某些原因,我的格式无法工作。它应该是一个单词列表,它和值之间的空格数等于myLetters的长度+4

def scrabbleWords(myLetters):
        letterPoints = {'a':1,'b':3,'c':3,'d':2, 'e':1,'f':4,'g':2,'h':4,\
    'i':1,'j':8,'k':5,'l':1,'m':3,'n':1,'o':1,'p':3,'q':10,'r':1,'s':1,\
    't':1,'u':1,'v':4,'w':4,'x':8,'y':4}
        wordList = createWordList('wordlist.txt')
        myWords = []
        for myWord in wordList:
            x = canWeMakeIt(myWord,myLetters)
            if x == True:
                myWords.append(myWord)


        pointWordList = []
        for myWord in myWords:
            t = getWordPoints(myWord,letterPoints)
            pointWordList.append((t,myWord))
        pointWordList.sort(reverse=True)


        lenx = str(len(myLetters)+4)
        for pointValue, myWord in pointWordList:
            x = '{:'+lenx+'}{}'.format(myWord,pointValue)
            print(x)

Tags: 代码intrue列表for单词wordlistappend
3条回答

“在格式字符串中遇到的”Single'}'错误是由于这样一个事实,即我们所看到的代码没有一些括号就不能工作。在

你写的

'{:'+lenx+'}{}'.format(myWord,pointValue)

但可能是有意的

^{pr2}$

而python的解释是:

'{:'+lenx+('}{}'.format(myWord,pointValue))
'{:'+lenx+'}{}'.format(myWord,pointValue)

解释为

^{pr2}$

更改为:

'{1:{0}}{2}'.format(lenx, myWord, pointValue)

编辑:不要忘记将lenx更改为整数(或者根本不要将其转换为字符串):

lenx = len(myLetters) + 4

问题出在'{:'+lenx+'}{}'.format(myWord,pointValue)表达式中,它试图将lenx+'}{}'.format(myWord,pointValue)加到和'{:'+lenx上。在

我认为这可以满足您的需要,并且在我看来,它更具可读性:

x = '{:{width}}{}'.format(myWord, pointValue, width=lenx)

编辑:另外,无论lenx是一个整数还是字符串值,这都是有效的。在

相关问题 更多 >

    热门问题