作者MenSheID (想问问题)
看板Python
标题Re: [野人献曝] List Comprehensions
时间Wed Jan 20 11:15:08 2010
不好意思 我没甚麽使用script语言的经验
我安装了Python 2.6
然後打开Python (command line)或是IDLE (Python GUI)就一行一行输入吗
我打第一行 ,结果会出现
但是为什麽我打第二个
>>> def f(x): return 3*x + 1
[ f(x) for x in range(10) ]
SyntaxError: invalid syntax
就出现error了呢
可能问题有点笨,希望大家指点我一下
又例如後面出现的无名小站抓图程式,应该要怎麽用
什麽是*.py 帐号 相簿编号??
※ 引述《zhouer ( )》之铭言:
: [ x for x in range(10) ]
: 这跟 range(10) 的结果一模一样,是:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
: def f(x): return 3 * x + 1
: [ f(x) for x in range(10) ]
: 可以想像,这样做的效果就是把 0 .. 9 分别带入 f(x)
: 所以得到的结果是:[1, 4, 7, 10, 13, 16, 19, 22, 25, 28]
: [ f(x) for x in range(10) if x % 2 == 0 ]
: 和上面类似,但只处理偶数,所以结果是:[1, 7, 13, 19, 25]
: [ (x, y) for x in range(3) for y in range(3) ]
: 也可以有数个变数,结果如下:
: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
: r = 5
: [(x, y) for x in range(r + 1) for y in range(r + 1) if x * x + y * y == r * r]
: 半径是 5 的圆,在第一象限所通过的格子点,结果是:
: [(0, 5), (3, 4), (4, 3), (5, 0)]
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 67.79.223.144
1F:→ Sforever:第一行enter後的... 要先enter跳过 再打[f(x) ...] 01/20 12:30
2F:→ MenSheID:谢谢 可以了 原来是这样 01/20 12:55