首页 > 解决方案 > 在 python 中使用 len() 函数我以某种方式得到了错误的长度

问题描述

所以我正在学习编码,在这里我是一个绝对的初学者。像我这样的初学者,我总共编码了大约 5 个小时。不包括我以 1.5 倍速度观看的 4.5 小时视频,用于介绍 Python。

我正在尝试制作一个刽子手游戏并且正在搞乱它。我有一个单独的文件,其中包含游戏随机抽取的单词,然后用户尝试猜测它。我的问题是,如果我使用 len(hidden_​​word) 选择“hidden_​​word”后,它会给我错误的单词长度。

它们都是单个单词,并且在文本文件中,任何单词之前或之后都没有空格。每个单词都在一个新行上,并且每个选定的单词的长度都比它应该的长度大 1。例如,单词 Jinx,显然有 5 个字母。

该文件实际上就是这个列表,但有 45 行。

Awkward
Bagpipes
Banjo
Bungler
...

我的代码:

from random import randint

# open words file and choose a hidden word
dictionary = open("words.txt", "r")
words = dictionary.readlines()
hidden_word = words[randint(0, 45)]
dictionary.close()
print(hidden_word)

它总是给我一个比它应该长的长度 1 的长度。

感谢您的帮助。

标签: python-3.x

解决方案


正如@jonrsharpe 在评论中指出的那样,换行符\n算作一个字符,并且该换行符包含在.readlines().

为了准确地获得长度,您需要在尝试找到长度之前去除空格(空格和换行符等):

hidden_word = hidden_word.strip()
print(len(hidden_word))

推荐阅读