@python 熄灯问题python
def inputaRow() :
#本函数用于输入一行灯的状态,返回一个01构成的字符串,一共6个字符,然后将这一个10组成的6个字符的字符串转换成列表结构
#然后在每个列表前后各增加一个0元素,都成一个8个元素的元组,以便于后期扩充成7行8列的方阵
dengrow=input(‘请输入一行6个灯的状态,0表示关灯状态,1表示开灯状态’)
while not(len(dengrow) ==6 and ((dengrow[0] '0’or dengrow[0]‘1’)and(dengrow[1] '0’or dengrow[1]‘1’)and(dengrow[2] '0’or dengrow[2]‘1’)and(dengrow[3] '0’or dengrow[3]‘1’)and(dengrow[4] '0’or dengrow[4]‘1’)and(dengrow[5] '0’or dengrow[5]‘1’))):
dengrow=input(‘输入错误,请输入一行6个灯的状态,0表示关灯状态,1表示开灯状态’)
drlist=[]
for i in range(6):
drlist.append(int(dengrow[i]))
drlist.insert(0,0)
drlist.append(0)
drtuple=tuple(drlist)
return drtuple
#我是快乐的分割线
************************************************************************
‘’’
test=inputaRow()
print(type(test))
print (test)
#这几句用于测试最后要注释掉
‘’’
#我是快乐的分割线*************************************************************************

def juZhen():
#这个函数通过调用inputaRow函数,构建5行的灯初始状态矩阵,每一行是一个列表,5行又构成一个矩阵列表
juZhenlist=[(0,0,0,0,0,0,0,0)]
for i in range(5):
juZhenlist.append(inputaRow())
juZhenlist.append((0,0,0,0,0,0,0,0))

for j in range(7):#这两句用于测试,正式版中删除

print(juZhenlist[j])#这两句用于测试,正式版中删除

return juZhenlist

#我是快乐的分割线*************************************************************************
#juZhen()#这一句用于测试,最后要注释掉
#我是快乐的分割线*************************************************************************

#我是快乐的分割线*************************************************************************
#以下是测试语句,需要注释掉
‘’’
xnjuZhenmain=xnjuZhen(juZhen())
for i in range(7):
print(xnjuZhenmain[i])
‘’’
#我是快乐的分割线*************************************************************************
def sccaozuo(num):
#这个函数用于对输入的数据生成6个0,1元素构成的操作码,然后前后各加一个0,扩充成8位元素的操作码
caozuoma1=[]
for i in range(6):
caozuoma1.append(num%2)
num=num//2
caozuoma1.insert(0,0)
caozuoma1.append(0)
return caozuoma1
#我是快乐的分割线*************************************************************************
#这几句是测试形成第二行(序号1)的操作码的语句要注释掉
‘’’
for i in range(64):
print(sccaozuo(i))
‘’’
#我是快乐的分割线*************************************************************************
def an1anniu(i,j,xnjuZhenself):
#这个函数是改变一个灯的状态,灯亮的就灭掉,灯灭的就亮起来,可以写成三目语句,回头重写时再优化
if xnjuZhenself[i][j]==1:
xnjuZhenself[i][j]=0
else:
xnjuZhenself[i][j]=1
return xnjuZhenself
#我是快乐的分割线*************************************************************************
def ananniu(rownum,arowcaozuo,xnjuZhenlistself):
#这个函数输入一个一行6个10,如果是1表示按按钮,0则什么也不做,第一个参数代表行号,从第2行(序号1)开始
rowself=rownum
for j in range(1,7):
if arowcaozuo[j]==1:
#print(‘现在对第’,rowself,‘行,第’,j,‘个按钮操作’)#这一句用于测试需要注释掉
xnjuZhenlistself=an1anniu(rowself-1 , j , xnjuZhenlistself)
xnjuZhenlistself=an1anniu(rowself , j-1 , xnjuZhenlistself)
xnjuZhenlistself=an1anniu(rowself , j, xnjuZhenlistself)
xnjuZhenlistself=an1anniu(rowself , j+1 , xnjuZhenlistself)
xnjuZhenlistself=an1anniu(rowself+1 , j , xnjuZhenlistself)
else:
pass
return xnjuZhenlistself
#我是快乐的分割线*************************************************************************
#首先生成一个虚拟的矩阵,这一句是测试用的可以删掉,这个矩阵的主体全是1
#ceshijuzhen=[[0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0]]
‘’’
#测试按一个按钮,不妨是1,1位置
ceshijuzhen=an1anniu(1,1,ceshijuzhen)
print(ceshijuzhen)
ceshijuzhen=an1anniu(1,2,ceshijuzhen)
print(ceshijuzhen)
ceshijuzhen=an1anniu(0,2,ceshijuzhen)
print(ceshijuzhen)
‘’’
‘’’
#测试按一行按钮
ceshicaozuoma=[0,1,0,0,0,0,0,0]
ceshijuzhen=ananniu(1,ceshicaozuoma,ceshijuzhen)
print(ceshijuzhen)
ceshijuzhen=ananniu(2, ceshijuzhen[1] ,ceshijuzhen)
print(ceshijuzhen)
‘’’
#我是快乐的分割线*************************************************************************

#以下是程序主体
#以下是程序主体
#以下是程序主体

#第一句生成78全是0和1的矩阵,四周一圈是无效的
#生成一个7
8矩阵,矩阵的形式是列表,每个元素是元组,代表每一行
chushijuzhen=juZhen()
for i in range(7):
print(chushijuzhen[i])
#构造一个操作矩阵caozuojuzhen,矩阵的形式是列表,每个元素也是列表代表每一行
caozuojuzhen=[]
#下面一段没有必要仅用于测试
‘’’
for i in range(7):
caozuojuzhen.append(list(chushijuzhen[i]))
print(caozuojuzhen[i])
‘’’
#构造一个列表caozuoma,用于放置每一行要执行的按钮操作,0表示该位置什么也不做,1表示要对相邻5个位置翻转灯的状态
caozuoma=[]
#构造一个列表放置执行成功的操作码chenggongma
chenggongma=[]
for caozuo in range(64):
#调用生成操作码函数,生成一个序号1行的操作码
caozuoma=sccaozuo(caozuo)
print(caozuo,‘当前操作码是’, caozuoma)
#初始化操作矩阵
caozuojuzhen.clear()
for i in range(7):
caozuojuzhen.append(list(chushijuzhen[i]))
# print(caozuo,’’ ,caozuojuzhen[i])#测试语句
#执行第一行的操作
ananniu(1,caozuoma,caozuojuzhen)
#for i in range(7):#测试语句
# print(caozuo,’
’,caozuojuzhen[i])#测试语句
for i in range(2,6):
#用上一行的操作结果作为下一行的操作码
ananniu(i,caozuojuzhen[i-1],caozuojuzhen)
jieguo=0
for i in range(1,6):
a0,a1,a2,a3,a4,a5,a6,a7=caozuojuzhen[i]
jieguo=jieguo+a1+a2+a3+a4+a5+a6
#print(i,’*’,caozuojuzhen[i])
if (jieguo)==0:
chenggongma.append(caozuoma)
print(caozuoma,‘是成功的’)

python熄灯问题相关推荐

  1. [转载] python enumerate函数 实例_python中使用enumerate函数遍历元素实例

    参考链接: Python enumerate() 这个是python的一个内建函数,看书的时候发现了他,mark一下 当我们既需要遍历索引同时需要遍历元素的时候,可以考虑使用enumerate函数,e ...

  2. Python 爬虫实战1.0

    学习python也有一段时间了,就写一个小爬虫来试试身手! 我选择爬的是虎扑网站上面的图片. 这就是我要爬的网站,最终我要把这个页面上面的图片全部爬取下来. (由于我不会封装对象,所以我是用函数式编程 ...

  3. 小学生python游戏编程arcade----灯光示例

    小学生python游戏编程arcade----灯光示例 前言 灯光阴影效果 1.灯光效果 1.1 玩家灯光效果 1.2 代码 2.灯光效果 2.1 软效果 2.2码实现 3.硬效果 3.1 灯光硬效果 ...

  4. 机智的黄图哥----第一个python爬虫的编写(一)

    很久以前的一个夏天夜晚,我发现了一个非常碉堡的lofter阿婆主.叫wonimal,主攻人体摄影,情而不色,肥而不腻 依照我的性格必然是右键保存右键保存,但是Lofter针对我们这种黄图哥早有防范,只 ...

  5. python输出自己的名字_python中 将你的名字转化成为二进制并输出

    1 name = "吴彦祖" 2 for i in name: 3 i_by = bytes(i, encoding = "utf-8") 4 for i_bi ...

  6. 与python相关的考研专业-那些选错专业的人,后来怎么样了?

    作者 | 番茄 好规划的朋友们 首发于微信号 好规划网 高考结束刚放飞了几天,娃和家长们就要开始面对报志愿选专业这个令人头疼的问题了. 有职业规划师说,专业是毕业后第一份工作的敲门砖,所以得认真挑认真 ...

  7. 化学人学python有前途吗-那些选错专业的人,后来怎么样了?

    作者 | 番茄 好规划的朋友们 首发于微信号 好规划网 高考结束刚放飞了几天,娃和家长们就要开始面对报志愿选专业这个令人头疼的问题了. 有职业规划师说,专业是毕业后第一份工作的敲门砖,所以得认真挑认真 ...

  8. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  9. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  10. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

最新文章

  1. 设计模式- 命令模式
  2. python类的调用关系_JAVA 查找类的所有引用关系(python实现)
  3. excel实战应用案例100讲(一)-用Excel实现表格提交、查询与新建
  4. 每日一题(29)—— 如何引用一个已经定义过的全局变量
  5. python数据科学实践 常象宇_Python数据科学实践
  6. EJB3.0技术体系---学习笔记
  7. Report machine 单据报表设计
  8. 浏览器是怎么解析JS的代码
  9. Arduino--电容式土壤湿度传感器使用及原理
  10. VS2015密钥 VS2017密钥
  11. 工程项目管理工作流程图大全(打包带走)
  12. opencv结合微信二维码识别功能实现图片二维码识别
  13. C# MessageBox 确定|取消
  14. 电脑录屏软件哪个好用,分享4款电脑录制视频清晰软件
  15. pycharm提示 进程已结束,退出代码 -1073740791 (0xC0000409)
  16. java简易计算器报告_简易计算器java实训报告.docx
  17. 18个无版权(免费可商用)图片网站
  18. 再读图灵奖得主Brooks 没有银弹 什么是卓越的设计者
  19. 8 大主流自媒体平台优缺点分析以及运营建议
  20. Not enough Memory

热门文章

  1. 反函数的概念及函数性质
  2. 原 Android studio下的DNK开发JNI详解流程
  3. 树莓派用USB蓝牙适配器连接蓝牙设备
  4. 计算机网络 子网掩码
  5. 系统架构设计笔记(91)—— 安全性规章
  6. loj10099 矿场搭建
  7. winuser.h(10105,3): error C2059: 语法错误:“(”
  8. 在PS中,1PX等于多少毫米?
  9. 零代码的科普算法书《未来算法》读后
  10. 音视频开发系列(2)PCM音量控制(高级篇)