二。分支与循环
本帖最后由 Python初学者8号 于 2021-8-11 10:09 编辑开个《分支循环》的章节,然后记一些个理解,实例之类的,让自己学习,大家看到了有见解也可以指出
for 循环的认识
1.for后面是判断
我所知道的是他的特殊点是在于其可以对于可迭代对象进行,那么有个说法可以加深这个认识
形式如下
for i in range(100):有种说法是,for后面的是是进行判断。比如这个例子就是判断每一个range对象中的元素是否在其中——是否成立为真,否则如果不在了就是为False也就是跳出了循环、
2.for是一种函数?
如果这么认识的话,其实,按照上面的例子i就是形参了??但是我进行下面的试验确实不对的。
>>> a = range(1,6)
>>> id(a)
140724897289888
>>> id(a)
140724897289920
>>> id(a)
140724897289952
>>> for i in a:
print(id(i))2021年8月11日10:06:14 还是不可的你看这个,for 1:
print('ggod')会报错Traceback (most recent call last):
File "C:\Users\83643\Desktop\test1 - 副本.py", line 1
for 1:
^
SyntaxError: invalid syntax它不像是while 后为真就可以判断
其实while和for的区别在于,for在设计的时候就知道要啥时候停止,而while不是——所以才会有死循环
for的想法其实很像我们做积分定义哪个想法,将分为n等分,然后再每个区间之内干啥干啥,这个样子很像
而因此,while就必须自己指定一个控制变量了
{:7_146:} 本帖最后由 阿奇_o 于 2021-7-23 22:31 编辑
for 本质是循环,是语句逻辑控制的一种,
它不属于什么函数,但反过来 一种特定的循环或算法,会通常封装为一个特定的函数。
有些语言,如PLSQL,它的for循环是这样写的 fori in 1..9 loop ... end loop;# loop 就是循环呀
在python等大多数语言里,for 循环,通常用做 遍历 可遍历的(或叫"可迭代的"iterable)的对象,也就是 逐个按特定顺序读取该对象的每一项(item)。
Java中,将 for循环叫做 "增强型迭代器",其实Python中你也可以这样叫,因为 它的操作逻辑 就是 循环调用 next()这样的函数,以读取每一项。
因为"迭代器"(遍历每一项)这样的操作太常见了,于是"懒惰"的程序猿,就琢磨 能不能把循环简化一些呢?
遍历的"套路"是固定,用 while 那样的写法(需要手动if判断是否遍历到了最后一项),似乎有点繁琐。。那要不来个"封装"。。
于是,程序猿们"发明"了一个 "增强型的遍历方法",于是 for 循环就出现了
—— 只需要 for i in iterable_obj: ... 即可(循环和判断,都被封装起来了,更简洁,更易用了)。
阿奇_o 发表于 2021-7-23 22:25
for 本质是循环,是语句逻辑控制的一种,
它不属于什么函数,但反过来 一种特定的循环或算法,会通常封装 ...
原来如此,所以我可以这样理解吗:for还是Guido在开发pyhton中设计的一种封装的函数——表现为循环的作用{:10_254:}
这个东西还是太奇妙了,很简单啊,和C中的区别大了去,感觉很好用,嘿嘿
感谢大哥指教 Python初学者8号 发表于 2021-7-23 22:51
原来如此,所以我可以这样理解吗:for还是Guido在开发pyhton中设计的一种封装的函数——表现为循环的作用 ...
还是不要那样理解吧,毕竟 不是函数, 只是和函数一样 体现了 "封装的思想"。。
假设 A国和C国都 一定程度上体现"民主的思想",你不能就认为 它们都是一样的呀。。哈哈
我想,你只要知道 for循环 是 一种"增强型的"循环,它是为了 遍历对象里的元素(项) 而诞生的。
以及,知道怎么用,就好了。 阿奇_o 发表于 2021-7-23 23:48
还是不要那样理解吧,毕竟 不是函数, 只是和函数一样 体现了 "封装的思想"。。
假设 A国和C国都 一定程 ...
好的 ,我也确实发现这里面没有参数的传递的过程量 了,{:10_277:}
我先记住“封装的思想”和“增强型循环”吧,哈哈
2.1 不是函数
根据阿奇_o大哥的说法,for循环不是函数。for只是一种增强型的循环,其实我的试验就表示这里没有参数的传递,所以for不是循环这个说法更加正确。
记住其特点——封装的思想&增强型循环 看了你两个帖子了,赶脚你是在自己学,就纯看视频,自己练得也少,查的资料也少的样子 小月yyds 发表于 2021-7-24 10:26
看了你两个帖子了,赶脚你是在自己学,就纯看视频,自己练得也少,查的资料也少的样子
别提了,你看我之前的帖子你就会发现我一直是自己学哈哈哈,我纯看视频,没有练手的东西,顶多就是课后作业。
我已经发现这个问题了,等我基础好点了我就开始找找一些简单的东西做一做
页:
[1]