python基础学习

来源:互联网 发布:xp linux双系统引导 编辑:程序博客网 时间:2024/05/21 09:56

和lua有很多相似之处, 这里记录一些要注意的地方:

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

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

字符串自动拼接:

'helo' ' world'"hello world"

数字转换为string:

// 下面不能忽略+号a=10print "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] => 2v[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 pythons = raw_input("input:")scrn_w = 80s_w=len(s)box_w=s_w+6s_margin=(box_w-s_w-2)/2l_margin = (scrn_w-box_w)//2printprint ' '*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 ⇒ truex is y  ⇒ falseassert 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,vprint "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"        breakelse:    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,vhe(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的元素

0 0
原创粉丝点击