鱼C论坛

 找回密码
 立即注册
查看: 2354|回复: 7

python的缩进

[复制链接]
发表于 2016-8-30 11:16:44 | 显示全部楼层 |阅读模式

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

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

x
今天看文档的一个函数发现缩进是不是有点并不对,
一直觉得python的缩进很严格,缩进都是严格的使用tab
为什么这样的缩进也可以运行
  1. def combinations(iterable, r):
  2.     # combinations('ABCD', 2) --> AB AC AD BC BD CD
  3.     # combinations(range(4), 3) --> 012 013 023 123
  4.     pool = tuple(iterable)
  5.     n = len(pool)
  6.     if r > n:
  7.         return
  8.     indices = list(range(r))
  9.     yield tuple(pool[i] for i in indices)
  10.     while True:
  11.         for i in reversed(range(r)):
  12.               if indices[i] != i + n - r:#这里if用了两个tab
  13.                 break
  14.         else:#用来一个tab加一个空格
  15.               return
  16.         indices[i] += 1
  17.         for j in range(i+1, r):
  18.             indices[j] = indices[j-1] + 1
  19.         yield tuple(pool[i] for i in indices)
复制代码
捕获.PNG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-30 11:45:47 | 显示全部楼层
小剑剑 发表于 2016-8-30 11:33
真不知道else可以和for配对

8.3. The for statement
The for statement is used to iterate over the elements of a sequence (such as a string, tuple or list) or other iterable object:

  1. for_stmt ::=  "for" target_list "in" expression_list ":" suite
  2.               ["else" ":" suite]
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-30 11:29:51 | 显示全部楼层
  1.         for i in reversed(range(r)):
  2.               if indices[i] != i + n - r:#这里if用了两个tab
  3.                 break
  4.         else:#用来一个tab加一个空格
  5.               return
复制代码

else 和 for 配对,而不是 if
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-30 11:33:51 | 显示全部楼层
SixPy 发表于 2016-8-30 11:29
else 和 for 配对,而不是 if

真不知道else可以和for配对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-30 12:50:12 | 显示全部楼层
SixPy 发表于 2016-8-30 11:45
8.3. The for statementThe for statement is used to iterate over the elements of a sequence (such a ...

点个赞,版主大人很严谨!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-30 13:40:12 | 显示全部楼层
小剑剑 发表于 2016-8-30 11:33
真不知道else可以和for配对

for和while都可以有else
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-30 13:40:15 | 显示全部楼层
小甲鱼 发表于 2016-8-30 12:50
点个赞,版主大人很严谨!

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-30 15:26:31 | 显示全部楼层

是啊版主大大很厉害,每天早上上鱼c想答答问题骗点鱼币的,结果都被版主大大扫光了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-22 12:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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