首页 编程教程正文

小白初习python分析理解for range以及and的使用,老鸟掠过……

piaodoo 编程教程 2020-02-22 22:12:42 1294 0 python教程

本文来源吾爱破解论坛

本帖最后由 世界上只有dog雄 于 2019-12-13 13:02 编辑

先上代码:#这个代码目的是随机生成1-4之间的三位数,好像暴力破解能用上!
[Python] 纯文本查看 复制代码

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if( i != k ) and (i != j) and (j != k):
                print i,j,k


先看前三句(都类似)
[Python] 纯文本查看 复制代码
for i in range(1,5)

意思是:利用range关键字生成了(1-4)不包含的5的三位数字。然后通过for循环传递给(迭代)i     #这样解释不知道准不准确

第四句主要是if和and的使用:
[Python] 纯文本查看 复制代码
if( i != k ) and (i != j) and (j != k):

让if来判断,i,k,j之间互相都不相等。以and的“且”也就是(i !=k )并且( i !=j )并且( j != k) 需要这三个条件都要成立才为真。


我感觉作为小白,这里的and的使用才是难点!

我们回顾and的知识点:

1、两边的表达式都为True的时候结果才为True。

2、任意一边为False的时候结果都为False

3、两边的表达式都为False,那肯定结果也是False



@bester  谢谢补充!
把and 翻译成中文的 “并且”
把or 翻译成中文的“或者”

"并且"理解成 所有的条件都要成立
"或者"理解成,只要其中一个条件成立


@wsleocn 谢谢补充高级写法,不过看不懂
[Python] 纯文本查看 复制代码
import itertools
mylist = itertools.permutations('1234',3)
for i in mylist:
    print(i)

以下是知识点:



嗨学网




so我们得出结论:
得出的结果就是这三个表达式之间都不想等的时候条件才为True,也就是为真的时候if下print(
i,j,k)才会执行,为假的时候就不执行。

然后执行结果为:
[Python] 纯文本查看 复制代码
1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2



借着这样分析理顺思路自己也明白了。不知道能不能也帮助和我一起初学的朋友。如果有错误的地方也请进阶者指出或者帮助,谢谢!嗨学网

Screenshot_2019-12-13 python itertools 模块讲解 - 海燕。 - 博客园.png (248.18 KB, 下载次数: 1)

下载附件  保存到相册

2019-12-13 13:02 上传

Screenshot_2019-12-13 python itertools 模块讲解 - 海燕。 - 博客园.png

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7811.html

搜索