您的位置:首页 > 编程语言 > Python开发

python基础学习

2016-03-17 16:44 489 查看
和lua有很多相似之处, 这里记录一些要注意的地方:

脚本文件:
#!/usr/bin/env python
第一行加上这个,就可以如shell脚本一样运行;

import math
math.sqrt(12)
from math import sqrt
sqrt(12)


字符串自动拼接:

'helo' ' world'  ⇒  "hello world"


数字转换为string:

// 下面不能忽略+号
a=10
print "he " +   `a`
print "he " + repr(a)
print "he " + str(a)


unicode

print u"hello world"


原始字符串,即忽略转义符’\’的意识:

print r"hello \n world"
==> “hello \n world”

数组

数组和lua,C类似, 但有一个负索引的特性, 即从末尾开始索引,如

str="abc"
str[-1] = 'c'
str[0]='a'


数组特性和matlab类似的功能:

v = [1,2,3,4,5]
v[1] => 2
v[1:3] => [2,3]
v[::2] => [1,3,5] #即从0索引开始以2为步长, 一般没有底二个':'时就是默认1为步长
v[3:] ==>[4,5] # 到最后


字符串或数组与整数相乘

str="he"
str*5 ==> "hehehehehe"
#空字符
str=[None]
str*5=[None,None,None,None,None]
#类似a=' ', a*5也是扩增字符串


下面是一个输出以方框包围打印字符串的代码:

#!/usr/bin/env python
s = raw_input("input:")
scrn_w = 80
s_w=len(s)
box_w=s_w+6
s_margin=(box_w-s_w-2)/2
l_margin = (scrn_w-box_w)//2
print
print ' '*l_margin + '+' + '-'*(box_w-2) + '+'
print ' '*l_margin + '|' + ' '*(box_w-2) + '|'
print ' '*l_margin + '|' + ' '*s_margin + s + ' '*s_margin + '|'
print ' '*l_margin + '|' + ' '*(box_w-2) + '|'
print ' '*l_margin + '+' + '-'*(box_w-2) + '+'


输出结果如下:



控制语句

注: 语句块是通过在代码前放缩进语句来创建的, 没有lua 中的end 也没有c中的{}来表识,所以格式是非常重要的

假: false None 0 ” () [] {} 都代表假

比较: > ,< ,>=,!= ..和C一样, 特殊的是:

x is y;  x is not y;
代表x与y是否同一个对象;

x in y; x not in y
指x是否在容器y中(如数组)

运算符的连接:
0<x<100


x=[1,2,3]
y=[1,2,3]
x==y ⇒ true
x is y  ⇒ false
assert 0<a<100  #断言


for

for v in str:
.....

#或者

for i in range(len(str)):
...

#或者

d = {'a':1,'b':2}
for k,v in d.items():
print k,v
print "end"


break; contine; 的使用都存在

循环语句中的else, 用于for 中,如果for 不是由break打断的, 则执行, 如果for中调用了break则不执行esle:

d = {'a':1,'b':2}
for k,v in d.items():
if v==3:
print "break"
break
else:
print "break for"


上面的输出:break for

函数

用def来定义函数

def he(v):
'defined by XXX'
assert v > 0
re = [0,1]
for i in range(v-2):
re.append(re[i]+re[i+1])
return re
#调用函数
print he(10)   #⇒ [0,1,1,2,3...]


读取函数中的说明字符:
he.__doc__


内建help命令:
help he


参数收集功能:

def he(a=1,*v):
'a=1 是默认参数'
print a,v
he(10,1,2,3)  #⇒ 10 (1, 2, 3) 即*v将剩余的参数都收集到了一个元组中;


map/lambda/filter

map(function,list) // 将list中的元素全部作为function的参数输入

结合lambda可以得到一次性的命令:
map(lambda x:x**2+3, list)


filter(lambda x:x>4,lsit)
过滤得到list中满足x>4的元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python