鱼C论坛

 找回密码
 立即注册
查看: 1446|回复: 8

[技术交流] 二。分支与循环

[复制链接]
发表于 2021-7-23 21:49:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Python初学者8号 于 2021-8-11 10:09 编辑

开个《分支循环》的章节,然后记一些个理解,实例之类的,让自己学习,大家看到了有见解也可以指出

for 循环的认识
1.for后面是判断

我所知道的是他的特殊点是在于其可以对于可迭代对象进行,那么有个说法可以加深这个认识

形式如下
  1. for i in range(100):
复制代码
有种说法是,for后面的是是进行判断。比如这个例子就是判断每一个range对象中的元素是否在其中——是否成立为真,否则如果不在了就是为False也就是跳出了循环、

2.for是一种函数?
如果这么认识的话,其实,按照上面的例子i就是形参了??但是我进行下面的试验确实不对的。
  1. >>> a = range(1,6)
  2. >>> id(a[0])
  3. 140724897289888
  4. >>> id(a[1])
  5. 140724897289920
  6. >>> id(a[2])
  7. 140724897289952
  8. >>> for i in a:
  9.         print(id(i))
复制代码
2021年8月11日10:06:14 还是不可的你看这个,
  1. for 1:
  2.     print('ggod')
复制代码
会报错
  1. Traceback (most recent call last):
  2.   File "C:\Users\83643\Desktop\test1 - 副本.py", line 1
  3.     for 1:
  4.          ^
  5. SyntaxError: invalid syntax
复制代码
它不像是while 后为真就可以判断


其实while和for的区别在于,for在设计的时候就知道要啥时候停止,而while不是——所以才会有死循环

for的想法其实很像我们做积分定义哪个想法,将[a,b]分为n等分,然后再每个区间[i,i+1]之内干啥干啥,这个样子很像

而因此,while就必须自己指定一个控制变量了


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-23 21:59:28 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-23 22:25:03 | 显示全部楼层
本帖最后由 阿奇_o 于 2021-7-23 22:31 编辑

for 本质是循环,是语句逻辑控制的一种,
它不属于什么函数,但反过来 一种特定的循环或算法,会通常封装为一个特定的函数。
有些语言,如PLSQL,它的for循环是这样写的 for  i in 1..9 loop ... end loop;  # loop 就是循环呀

在python等大多数语言里,for 循环,通常用做 遍历 可遍历的(或叫"可迭代的"iterable)的对象,也就是 逐个按特定顺序读取该对象的每一项(item)。
Java中,将 for循环叫做 "增强型迭代器",其实Python中你也可以这样叫,因为 它的操作逻辑 就是 循环调用 next()这样的函数,以读取每一项。
因为"迭代器"(遍历每一项)这样的操作太常见了,于是"懒惰"的程序猿,就琢磨 能不能把循环简化一些呢?
遍历的"套路"是固定,用 while 那样的写法(需要手动if判断是否遍历到了最后一项),似乎有点繁琐。。那要不来个"封装"。。

于是,程序猿们"发明"了一个 "增强型的遍历方法",于是 for 循环就出现了
—— 只需要 for i in iterable_obj: ... 即可(循环和判断,都被封装起来了,更简洁,更易用了)。



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-23 22:51:19 | 显示全部楼层
阿奇_o 发表于 2021-7-23 22:25
for 本质是循环,是语句逻辑控制的一种,
它不属于什么函数,但反过来 一种特定的循环或算法,会通常封装 ...

原来如此,所以我可以这样理解吗:for还是Guido在开发pyhton中设计的一种封装的函数——表现为循环的作用
这个东西还是太奇妙了,很简单啊,和C中的区别大了去,感觉很好用,嘿嘿

感谢大哥指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-23 23:48:59 | 显示全部楼层
Python初学者8号 发表于 2021-7-23 22:51
原来如此,所以我可以这样理解吗:for还是Guido在开发pyhton中设计的一种封装的函数——表现为循环的作用 ...

还是不要那样理解吧,毕竟 不是函数, 只是和函数一样 体现了 "封装的思想"。。
假设 A国和C国都 一定程度上体现"民主的思想",你不能就认为 它们都是一样的呀。。哈哈

我想,你只要知道 for循环 是 一种"增强型的"循环,它是为了 遍历对象里的元素(项) 而诞生的。
以及,知道怎么用,就好了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-24 09:58:54 | 显示全部楼层
阿奇_o 发表于 2021-7-23 23:48
还是不要那样理解吧,毕竟 不是函数, 只是和函数一样 体现了 "封装的思想"。。
假设 A国和C国都 一定程 ...

好的 ,我也确实发现这里面没有参数的传递的过程量 了,
我先记住“封装的思想”和“增强型循环”吧,哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-24 10:01:22 | 显示全部楼层
2.1 不是函数
根据阿奇_o大哥的说法,for循环不是函数。for只是一种增强型的循环,其实我的试验就表示这里没有参数的传递,所以for不是循环这个说法更加正确。

记住其特点——封装的思想&增强型循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-24 10:26:52 | 显示全部楼层
看了你两个帖子了,赶脚你是在自己学,就纯看视频,自己练得也少,查的资料也少的样子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-24 10:32:38 | 显示全部楼层
小月yyds 发表于 2021-7-24 10:26
看了你两个帖子了,赶脚你是在自己学,就纯看视频,自己练得也少,查的资料也少的样子

别提了,你看我之前的帖子你就会发现我一直是自己学哈哈哈,我纯看视频,没有练手的东西,顶多就是课后作业。
我已经发现这个问题了,等我基础好点了我就开始找找一些简单的东西做一做
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 06:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表