| 查看: 1248 | 回复: 4 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
独孤蚕铁杆木虫 (著名写手)
|
[求助]
Python中for循环的一个问题
|
|
|
最近在学Python语言,对for循环有一个不解之处。虽然知道Python语言中语句的位置非常重要,但是以下两个程序中位置的变化不知道有什么区别,不过两者得出的结果确是不同的。 程序一: >>> def containAny(seq,aset): for c in seq: if c in aset: return True else: return False >>> a='we are Chinese' >>> b='abcdefg' >>> containAny(a,b) False 程序二: >>> def containAny(seq,aset): for c in seq: if c in aset: return True return False >>> containAny(a,b) True >>> containAny(b,a) True |
» 猜你喜欢
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
孩子确诊有中度注意力缺陷
已经有6人回复
2026博士申请-功能高分子,水凝胶方向
已经有6人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
请问2026国家基金面上项目会启动申2停1吗
已经有5人回复
同一篇文章,用不同账号投稿对编辑决定是否送审有没有影响?
已经有3人回复
ACS Applied Polymer Materials投稿
已经有10人回复
RSC ADV状态问题
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
Python学习-基础教程翻到一半了
已经有11人回复
Python学习第一天
已经有54人回复
FORTRAN新手 求助主程序循环问题
已经有10人回复
《python科学计算》已经出版了
已经有36人回复
python urllib2 求助阿
已经有7人回复
[Python参考手册(第4版)].(美)比兹利.扫描版
已经有10人回复
linux下运行python报错,不知原因
已经有12人回复
百度文库里的,转给大家看看,Python的学习
已经有12人回复
python问题
已经有5人回复
提供一个网页,里面有许多编译好的python组件,包括pymol1.4.1!
已经有5人回复
菜鸟一个,自学python,请教高手一个小问题
已经有3人回复
Python的一个extension: Cython
已经有19人回复
程序语言版拟开新子版“Shell&Perl&Python”
已经有10人回复
【求助】Python 中 求解微分方程 odeint 的用法
已经有11人回复
【分享】Python核心编程(第二版)(pdf)【已搜索无重复】
已经有5人回复
【原创】科学计算与绘图--python解决方案
已经有27人回复
tieer
木虫 (正式写手)
- 程序强帖: 4
- 应助: 48 (小学生)
- 金币: 1528.2
- 散金: 565
- 红花: 26
- 帖子: 551
- 在线: 739.7小时
- 虫号: 761880
- 注册: 2009-05-02
- 专业: 高分子材料结构与性能

3楼2012-05-20 20:45:48
tieer
木虫 (正式写手)
- 程序强帖: 4
- 应助: 48 (小学生)
- 金币: 1528.2
- 散金: 565
- 红花: 26
- 帖子: 551
- 在线: 739.7小时
- 虫号: 761880
- 注册: 2009-05-02
- 专业: 高分子材料结构与性能
【答案】应助回帖
★ ★ ★ ★
感谢参与,应助指数 +1
独孤蚕: 金币+3, ★★★很有帮助, 貌似有点懂了,谢谢啊。 2012-05-21 00:18:34
xzhdty: 金币+1, 谢谢 2012-05-21 05:55:45
感谢参与,应助指数 +1
独孤蚕: 金币+3, ★★★很有帮助, 貌似有点懂了,谢谢啊。 2012-05-21 00:18:34
xzhdty: 金币+1, 谢谢 2012-05-21 05:55:45
|
你这个程序段的目的是什么我还真不是特别清楚,如果是判断一个序列中的字母是否都在另一个中,似乎不应该这样写的。 第一个程序中,读取了第一个字母W后,判断False,程序就已经终止了,不会继续下去的。 第二个中,是遍历seq中的字母直到出现True的结果,一旦有seq的字母在aset中,即会返回Ture,除非遍历完seq发现没有任何一个字母在aset中,才会返回False |

2楼2012-05-20 20:41:42
libralibra
至尊木虫 (著名写手)
骠骑将军
- 程序强帖: 40
- 应助: 817 (博后)
- 金币: 12914.1
- 红花: 64
- 帖子: 2238
- 在线: 287.3小时
- 虫号: 696514
- 注册: 2009-02-05
- 专业: 计算机软件
★
xzhdty: 金币+1, 专家考核, 谢谢参与 2012-05-21 05:56:02
xzhdty: 金币+1, 专家考核, 谢谢参与 2012-05-21 05:56:02
|
return的作用是函数立即返回,不会继续运行的. 因此你第一个函数虽然有for循环,但是第一次进入之后,不管是否能找到当前元素,函数都会返回,因此只判断了第一个字母而已. 第二个函数会循环判断所有,直到找到某一个元素,返回true;否则循环结束返回false,意味着第二个参数不包含第一个参数的任意字母. 因此,你的第一个函数相当于: return seq[0] in aset 第二个函数相当于: return len([x for x in seq if x in aset])!=0 |
» 本帖已获得的红花(最新10朵)

4楼2012-05-20 22:07:47
独孤蚕
铁杆木虫 (著名写手)
- 应助: 1 (幼儿园)
- 金币: 7702.6
- 红花: 4
- 帖子: 2131
- 在线: 321.1小时
- 虫号: 717508
- 注册: 2009-03-08
- 性别: GG
- 专业: 遗传学与生物信息学
5楼2012-05-21 00:20:53













回复此楼
独孤蚕