python-3.x - 在 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 的长度。
感谢您的帮助。
解决方案
正如@jonrsharpe 在评论中指出的那样,换行符\n
算作一个字符,并且该换行符包含在.readlines()
.
为了准确地获得长度,您需要在尝试找到长度之前去除空格(空格和换行符等):
hidden_word = hidden_word.strip()
print(len(hidden_word))
推荐阅读
- amazon-web-services - 如何授予对 IAM 角色/用户的访问权限以在 AWS Elasticsearch 中创建角色?
- python - Python 注释 - 为什么我的 IDE 的 Intellisense 无法识别已知类?
- python - 使用python提取Outlook邮箱中每个文件夹的名称
- python - 捕获交互式帮助文档字符串的输出(使用?)
- function - 为什么 kotlin 的 Any 类中的函数没有主体?
- javascript - 通过网页执行 CMD 命令
- python - 下划线开头的函数参数名称
- javascript - 如何检查变量值是增加还是减少并显示增加或减少的数字
- javascript - 编写多人国际象棋游戏:HTML5 Canvas + ReactJS vs. Phaser 3
- c# - 未从 C# 中的 FirebaseAdminSK 接收推送通知到 ios