最近开始看python。然后开始写一些学习笔记。由于我使用WINDOWS,因此下面所有的都针对WINDOWS平台。
部分内容可能来源于 http://linux.chinaitlab.com。
python是一个解释性语言,这跟js有点像。当然,它是面向对象的,而且功能比较强大。
获取,安装
可以从python.org/download获取最新版本的python。安装以后,需要在PATH中添加环境变量,只需要将python安装目录添加进去即可。如 D:/python26。
进入python
在命令行中输入python,即进入Python的交互模式。如果要退出,按ctrl+z,然后敲回车。
运行python程序
可以有两种方式:
1. 在交互模式中输入命令,直接运行。如 print "hello"
2. 运行写好的程序。这不需要进入python。直接在命令行输入 python yourProgram.py即可。
数
Python中有四种数:
整数,如13
长整数
浮点数,如3.12, 2e55
复数,如 3+4j
字符串
使用单引号/双引号(完全等效),如 'abcde', "abcde"
使用三引用,它可用于定义多行的字符串,如
''' this is a
multiline
sentence'''
字符/可以用来转义,如果该字符位于行末,可用于续行。
自然字符串
在字符串前加前导r/R, 如 r"tda;fadf"。它能够使得内部的符号表示其原本的意思,如正则表达式中的 /。
unicode字符串
在字符串前加前导u,如u"中文"
注意:Python中字符串是不可变的,如同很多其他语言一样。
变量
命名规则同其他语言,Python中基本的变量类型是数和字符串。另外可以使用类。
运算符
**: 幂乘,如3**4=81
//:取商的整数部分,如4//3.0=1.0
~:按位翻转,如~-5=6
not, and, or,注意,没有!, &&, ||
表达式
print "3+4=",3+4; 注意python会自动在=后面加空格。
控制流
if a==b:
xxx
elif xxx:
xxx
else:
xxx
while true:
xxx
else:
# loop over
for i in range(1,6):
xxx
else:
xxx
有点像C#中的foreach。python不提供类似于for(int i=0;i<10;i++)这种for语句。
python中也没有switch语句。
break和continue同C#中的相同。
函数
def add(a,b):
print a+b;
return a+b;
注意:使用缩进表示函数结束。
def add(a, b=4),使用默认参数值(类似于C++),注意默认参数值必须位于参数列表的最后
调用的时候,可以通过显式指定参数值,如add(a=10), add(b=20,a=10)
def add(a,b):
''' calc value of a+b '''
return a+b;
print add(3,4);
print add.__doc__ -->将输出 calc value of a+b。这个特性很有用,可用于从代码中提取注释!
模块
模块必须以.py为扩展名,编译后的模块为.pyc
import sys.argv; 可以在后面的程序中使用sys.argv
from sys import argv; --> 可以在后面的程序中直接输入argv,即sys.argv
from sys import *;
一般而言,应避免使用from import语句,它类似于C#中的using System.*;
模块的name
if
__name__ ==
'__main__'
:
xxx
else:
xxx
一般python命令的模块名称为__main__,如python abc.py
而import则不是。如import abc.py
创建自己的模块 :
#!/usr/bin/python
# Filename: mymodule.py
def
sayhi
():
print
'Hi, this is mymodule speaking.'
version =
'0.1'
# End of mymodule.py
使用自己的模块 :
# Filename: mymodule_demo.py
import
mymodule
mymodule.sayhi()
print
'Version'
, mymodule.version
dir() 方法,它能列出特定module下所定义的所有变量,子模块,类,函数等。
del module_name/func_name/var_name可删除某个模块/类/函数等。使之在当前上下文中不可用。
python的数据结构
列表,元组和字典。
列表 :people=["you","me","him","her"]
len(people), people.append("xx"), delete people[0], for p in people:
使用help(list)获取更多关于list的知识
元组 :与List类似,唯一区别是元组是不可变的。 people=("you","me","him","her");
people=("you","me",("aa","bb"));
注意含单个元素的元组有些特殊,people=("you", )。必须加”,“以区分一个普通对象与元组。
字典 :people={
"a":22,
"b":33,
"c":44
};
for name,age in people.items():
print name, ":", age;
del people["a"]
使用help(dict)获取更多知识