python语法

只列出与java语法不同的地方。

if-else语句

age = 20
if age >= 18:
    print 'your age is', age
    print 'adult'
else:
    print 'teenager'
print 'END'

  注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,上面的3,4行 print 语句就构成一个代码块(但不包括第5行的print)。如果 if 语句判断为 True,就会执行这个代码块。
  缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
  注意: if 语句后接表达式,然后用:表示代码块开始。

if age >= 18:
    print 'adult'
elif age >= 6:
    print 'teenager'
else:
    print 'baby'

  elif 意思就是 else if。

for循环

L = [1,2,3]
for name in L:
    print name

  注意: name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体

while循环

N = 10
x = 0
while x < N:
    print x
    x = x + 1

函数

  定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
  

def my_abs(x):
        if x >= 0:
            return x
        else:
            return -x

函数之返回多值

# math包提供了sin()和 cos()函数,我们先用import引用它:
import math
def move(x, y, step, angle):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny

  这样我们就可以同时获得返回值:

>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print x, y
151.961524227 70.0

  但其实这只是一种假象,Python函数返回的仍然是单一值:

>>> r = move(100, 100, 60, math.pi / 6)
>>> print r
(151.96152422706632, 70.0)

  用print打印返回结果,原来返回值是一个tuple!

函数之定义默认参数

  函数的默认参数的作用是简化调用。
  假设计算平方的次数最多,我们就可以把 n 的默认值设定为 2:

def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

  这样一来,计算平方就不需要传入两个参数了:

>>> power(5)
25

  由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面。

函数之定义可变参数

def fn(*args):
    print args

  可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数。

切片

对list切片

  对于经常取list指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> L[0:3]
['Adam', 'Lisa', 'Bart']

  索引下标,含头不含尾,即取0~2的元素。
  只用一个 : ,表示从头到尾。

  切片操作还可以指定第三个参数:

>>> L[::2]
['Adam', 'Bart']

  第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。

倒序切片

  Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片

>>> L[-2:]
['Bart', 'Paul']

  记住倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引。

字符串切片

  Python没有针对字符串的截取函数,只需要切片一个操作就可以完成。

>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[-3:]
'EFG'
>>> 'ABCDEFG'[::2]
'ACEG'

迭代

迭代dict的key和value。

>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
>>> print d.items()
[('Lisa', 85), ('Adam', 95), ('Bart', 59)]

  可以看到,items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value。

>>> for key, value in d.items():
...     print key, ':', value
... 
Lisa : 85
Adam : 95
Bart : 59

列表生成式

  生成list,可以用range(x,xx)

>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  生成[1x1, 2x2, 3x3, …, 10x10]怎么做?

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

  这种写法就是Python特有的列表生成式。利用列表生成式,可以以非常简洁的代码生成 list。

  列表生成式的 for 循环后面还可以加上 if 判断.

>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

多层表达式

  对于字符串 ‘ABC’ 和 ‘123’,可以使用两层循环,生成全排列:

>>> [m + n for m in 'ABC' for n in '123']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

总结

  学习了Python的基本语法,确实能感受到其优雅简洁的特点,如切片、列表生成、多层表达式,更是强化其简洁便利性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值