循环嵌套里关于赋值的小坑
来源:互联网 发布:电脑音乐剪辑软件 编辑:程序博客网 时间:2024/04/30 18:43
- 题目:有1、2、3、4个数字,打印出所有每一位互不相同且无重复数字的三位数?
# 其实这用一个很简单的嵌套循环就可以写出来的,直接上代码。for x in range(1,5): for y in range(1,5): for z in range(1,5): if x != y and x != z and y != z: x = str(x) y = str(y) z = str(z) print(x+y+z)
咋一看代码没有任何问题,但是运行出来结果不正确。要求每一位都互不相同,但是打印出的结果有相同的。
仔细看过代码,循环和判定条件都没有问题。后面终于看明白了,犯了一个很弱智的错误,在嵌套循环里面,最里面一级的循环结束了才会跳到上一级循环一次,再进入到最里面一级的循环,也就是,在第一次循环后,x,y,z 都被强制转换成了字符串,第二次循环时,只有 z 被重新赋值为了整数,拿字符串和整数作比较当然会出问题。
反应过来后,才发现这个错误虽然很弱智,但是有时还真不太容易看出来。
稍作修改,如果要用这种写法,则必须把转换后的字符串重新赋给一个新的变量,程序才争取。
for x in range(1,5): for y in range(1,5): for z in range(1,5): if x != y and x != z and y != z: a = str(x) b = str(y) c = str(z) print(x+y+z)
注:在嵌套循环的时候一定要注意变量问题,因为下一次的循环开始,是按照上一次变量的赋值而进行的
阅读全文
0 0
- 循环嵌套里关于赋值的小坑
- 几个关于嵌套循环的小练习
- 关于for循环的嵌套
- 关于artTemplate的循环嵌套
- 关于循环查询 循环赋值的笔记
- PLSQL跳出嵌套循环的小例子
- 关于嵌套循环的优化问题!
- 关于viewpager嵌套listview循环的问题
- for循环里嵌套使用ajax遇到的问题
- 关于微信小程序循环以及嵌套循环的总结
- js关于for循环里的setTimeout
- 关于struts2里action的name属性赋值问题
- 关于嵌套循环效率研究
- shell 关于 while 循环中赋值的问题
- oracle存储过程里嵌套游标循环
- [28期] 关于嵌套循环的试验总结
- 关于阿里的笔试题for循环中嵌套setTimeout
- 嵌套循环的优化。。。
- React基本使用(引用版)
- Linux命令(31)——find命令
- 命令netstat查看网络状态
- Ubuntu16.04LTS 下ros(kinetic)的arduino应用(二)
- 日常运维-2
- 循环嵌套里关于赋值的小坑
- php数据类型
- 程序员工资多高才算高?
- CocoaPods删除已安装的库
- shiro 学习日记1
- 抓包工具
- 爬格子呀--一堆东西
- 第5章 初始化与清理
- PHP预定义接口之ArrayAccess