读取文件并检查数据是否在文件中.Python
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了读取文件并检查数据是否在文件中.Python,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1574字,纯文字阅读大概需要3分钟。
内容图文
![读取文件并检查数据是否在文件中.Python](/upload/InfoBanner/zyjiaocheng/729/79dd90029a1c4b70bec9e98e94164c1e.jpg)
我正在为一个学校项目制作一个骰子游戏.当你开始游戏时,你输入你的名字,它需要从文件“Player_Names.txt”中读取之前玩过的玩家的名字列表,如果名字不在列表上,那么他们会得到“欢迎”,但如果它他们得到了“欢迎回来”.
使用我当前的代码会发生什么,它只读取文件中的第一行,所以如果名称不在第一行,它将给出一个欢迎新玩家的消息.
另外,如果你的名字的一部分,如果你第一次输入“马修”,然后另一次输入“马特”它会给你一个“欢迎回来”的消息,但“马特”是一个不同的人所以它应该是一个“欢迎”的消息.
此外,如果您输入的名称在列表中,但在文件的第二行,您没有得到任何回复程序只是继续下一行代码.
Names = open("Player_Names.txt", "r+")
player1 = input("Enter your name: ")
if player1 in Names.readline():
print("Welcome back you are player 1")
elif player1 not in Names.readline():
print("Welcome you are player 1")
Names.write(player1)
Names.write("\n")
我怎样才能让程序阅读所有的行并将整个单词作为整个单词处理,而不是像“马太”这样的单词?
解决方法:
这里有几个问题:
if player1 in Names.readline():
print("Welcome back you are player 1")
elif player1 not in Names.readline():
这个结构通常是多余的,因为第一个条件是第二个条件的否定所以你可以写:
if player1 in Names.readline():
print("Welcome back you are player 1")
else:
但在这种情况下,Names.readline()具有消耗第一行的副作用.所以他们不等同.
此外,如果文件中有多行,则算法不起作用.
我会用行创建一个列表并使用任何:
lines = Names.readlines()
if any(player1 in line for line in lines):
# known player
else:
# new player
请注意,您可以使用集合和完全匹配创建更高性能的查找:
lines = {x.strip() for x in Names}
player1 = player1.strip()
if player1 in lines:
....
else:
内容总结
以上是互联网集市为您收集整理的读取文件并检查数据是否在文件中.Python全部内容,希望文章能够帮你解决读取文件并检查数据是否在文件中.Python所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。