Python的循环结束else分支语义与英文意思间有点别扭吧?
Python的循环结束else分支语义与英文意思间有点别扭吧?为什么用else这个关键词?
我觉得loopdone不错
for ... else ... 没有任何问题,如果讲英语的人不觉得别扭而你觉得别扭,那肯定是你的问题 ;P 如果说在这里能使用 else 有什么争议的话,那就是有部分人认为 nobreak 是更合适的选择,因为如果在 for 循环内使用 break 的话会跳过 else 语句块。
但是,俺觉得还是用 else 更好一些,首先少一个关键字是一个巨大的优点,其次 nobreak 这样的否定式的关键字感觉更别扭。 本帖最后由 ustone 于 2024-12-20 07:28 编辑
scoopydoo 发表于 2024-12-20 04:23
如果说在这里能使用 else 有什么争议的话,那就是有部分人认为 nobreak 是更合适的选择,因为如果在 for 循 ...
nobreak 见名知意,
else一般是二选一,for执行完了执行else就不是二选一了 ustone 发表于 2024-12-20 07:26
nobreak 见名知意,
else一般是二选一,for执行完了执行else就不是二选一了
那是你没理解 for的含义,事实上 for 也是一个条件语句 scoopydoo 发表于 2024-12-20 08:02
那是你没理解 for的含义,事实上 for 也是一个条件语句
if xxx:
a
else:
b
a和b不会都执行,改成for就会都执行(如果没break) 本帖最后由 scoopydoo 于 2024-12-20 08:18 编辑
ustone 发表于 2024-12-20 08:10
if xxx:
a
else:
这里的 for 可以理解为迭代没有结束就执行其后面的语句块,如果结束了就执行 else 语句块。
这个问题有过广泛的讨论,一个语法糖而已,其实不论是 else 或者是 nobreak 或者其他什么,都谈不上完美,选择 else 至少有关键字少的优势。
用不着纠结它用了 else 或者 nobreak,掌握并熟练使用它就行了 ...... def fn(ls):
dict1={}
for i in ls:
dict1=dict1.get(i,0)+1
ls=list(dict1.items())
for item in ls:
k,c=item
if c>1:
return True #假如印刷到页尾
else: #新的一页
return False
这段代码,如果印刷到书本,那个else很容易被误以为和if配套,而不是和for配套
补充内容 (2024-12-23 13:17):
def fn(ls):
dict1={}
for i in ls:
dict1=dict1.get(i,0)+1
for c in dict1.values():
if c>1:
return True
else:
return False
补充内容 (2024-12-23 13:19):
dict1【i】 scoopydoo 发表于 2024-12-20 08:17
这里的 for 可以理解为迭代没有结束就执行其后面的语句块,如果结束了就执行 else 语句块。
这个问 ...
我以前没有关注过Python的话题,最近才开始学,自己感觉到这个问题,可见很多人都对这点有异议。
看一下上一楼贴的代码就会明白。
事实上,我感觉Python的语法很多地方都比较简单优美自然,而且避免了C语言的许多坑(如《C陷阱与缺陷》一书提到的)
ustone 发表于 2024-12-20 08:19
这段代码,如果印刷到书本,那个else很容易被误以为和if配套,而不是和for配套
首先,现在还有人在书本上看代码吗?近些年出版的书,其上面用到的例程,都会有代码供下载的。
其次,Python 对缩进的要求是硬性的,如果书籍排版不能满足这个要求,那这个书不读也罢 ...... scoopydoo 发表于 2024-12-20 08:46
首先,现在还有人在书本上看代码吗?近些年出版的书,其上面用到的例程,都会有代码供下载的。
其次, ...
代码在同一页还好,缩进很明显,如果代码隔了一页,很容易搞错。 ustone 发表于 2024-12-20 08:52
代码在同一页还好,缩进很明显,如果代码隔了一页,很容易搞错。
书籍都有配套的代码,用有语法高亮的编辑器看代码才是正确的方式。 scoopydoo 发表于 2024-12-20 09:11
书籍都有配套的代码,用有语法高亮的编辑器看代码才是正确的方式。
看书的时候没有开电脑 为了学习python,
我买了 python 3剑客。
书里的代码可以索要。
lxa000 发表于 2024-12-21 01:43
为了学习python,
我买了 python 3剑客。
书里的代码可以索要。
Python语言还能搞单片机?
页:
[1]
2