python汉字找茬 简介
程序名称:
实战学习python小游戏:52组撞脸汉字找茬,挑战你的眼力。
版本说明:
这个程序做了两个版本:
1. Python控制台游戏
简介:在控制台中运行,相对简单,本文中会详细说明全过程。
涵盖Python知识点:
循环及分支语句、random随机模块、读取文件、字符串常见操作、部分列表函数等
2. Python窗口游戏
简介:结合python turtle在窗口中运行,闯关模式,共计52个关卡(可增加)
【文末提供 程序代码及素材免费下载】
涵盖Python知识点:在python控制台版找茬的基础上增加:
python turtle的常用操作,如笔的移动及颜色等操作、绘制正方形、写字、窗口及背景设置、获取鼠标位置。
函数的定义、调用、参数传递、全局变量使用、弹窗等等。
Python汉字找茬运行效果图
python汉字找茬 过程
以下详细说明python汉字找茬的全部过程,但很多过程考虑了初学者的知识量和理解,有些啰嗦。
你可以尝试看看能不能改进,也可以看下一部分的成品,这两个部分代码不完全一样。
1.读取字库文件
# 使用只读方式打开文件,并设变量名为 f
f = open ('字库.txt', "r", encoding='utf-8')
s = f.readlines() #按行读取整个文件,返回列表 s
f.close() #关闭文件
2.处理列表项的格式
列表内汉字格式为 ‘喏:啱n’,
处理后格式为 [‘喏’, ‘啱’]。
for i in range(len(s)):
# q为 '喏:啱n'
q = s[i]
# q改为 '喏:啱'
q = q.strip() #去除字符串左右两边的空格、n
# q改为列表 ['喏','啱']
q = q.split(":")
# 用q将原列表值替换
s[i] = q
3.随机选择一对汉字
注意:
第3步、和第4步的输出,有些啰嗦
是为了初学者理解和练习python的基础,熟练列表、字符串、循环等的基本操作。
你可以试试能不能简化,写成一个步骤
#从列表中随机选择一组汉字,分别赋值给s1,s2
s1, s2 = random.choice(s)
#定义列表list1,用于本关卡的汉字
list1 = []
#第1个汉字 增加到列表100次
for i in range(100):
list1.append(s1)
#随机生成100以内的随机数
n = random.randint(0,99)
#将列表的n项改为 第2个汉字
list1[n] = s2
4.输出python找茬所有汉字
这个步骤也可以简化,或者换一种方法
# m记录当前是第几个字
m = 0
for i in list1:
# 输出当前字,但不换行
print(i, end="")
# 如果当前数字的末尾为9,就换下一行
if str(m)[-1]=='9':
print() #换行
m += 1
验证是否正确
print("请输入汉字行列数,用空格分隔")
#无限循环,如果答不对,就重新开始
while True:
#获取输入,格式为:行 列
pos = input(":").strip()
#去除多余空格再使用空格分隔成列表
pos = pos.split()
#分别读取行列的数字
r = int(pos[0])
c = int(pos[1])
#以上三行,可写为一行
#r,c = map(int,pos.split())
#根据输入的行列,计算位置
n1 = (r-1)*9+c-1
if n1==n:
print("正确!")
break #退出整个循环
else:
print("错误!重新输入!")
python汉字找茬 代码
import random
f = open ('字库.txt', "r", encoding='utf-8')
list1 = f.readlines()
f.close()
for i in range(len(list1)):
q = list1[i]
q = q.strip()
q = q.split(":")
list1[i] = q
s = random.choice(list1)
s1,s2 = s
list1.remove(s)
n = random.randint(0,80)
#输出
m = 0
for j in range(9):
print (j+1, end=": ")
for i in range(9):
if m==n: print(s1, end="")
else: print(s2, end="")
m += 1
print()
#判断是否正确
print("请输入汉字行列数,用空格分隔")
while True:
pos = input(":").strip()
r,c = map(int,pos.split())
n1 = (r-1)*9+c-1
if n1==n:
print("正确!")
break
else:
print("错误!重新输入!")
python汉字找茬窗口版下载
python汉字找茬窗口版的全部程序代码及素材下载方式:
关注 python入门速学 后台输入 汉字找茬 即可全部免费下载
如果喜欢请点赞、关注、转发,谢谢!
原文始发于微信公众号(Python入门速学):Python小游戏:52组撞脸汉字找茬,挑战你的眼力
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/236460.html