1.python每一行结束后不需要加分号,解释器根据行来区别句子。
2.在python中,^表示异或位运算,** 表示幂运算
3.标识符,以下划线开头是具有特殊意义的,以单下划线开头代表不能直接访问的类属性,不能用 from xxx import 导入;双下划线开头的代表类的
私有成员;以双下划线开头和结尾的,代表python里面特殊方法的专用标识,如__init__()代表类的构造函数。
路径介绍
1.在python用import或者from...import来导入相应的模块。使用import时,需要在函数名前加上模块名作为前缀,但是使用from..import时,不需
要加模块名。
2.模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我
们就可以使用了。
3.这类似于C语言中的include头文件,Python中我们用import导入我们需要的模块。
搜索路径
Python会在以下路径中搜索它想要寻找的模块:
1. 程序所在的文件夹
2. 标准库的安装路径
3. 操作系统环境变量PYTHONPATH所包含的路径
import sysprint ( '================Python import mode==========================' );print ( 'The command line arguments are:' )for i in sys . argv :print ( i )print ( '\n The python path' , sys . path )from sys import argv , path # 导入特定的成员print ( '================python from import===================================' )print ( 'path:' , path ) # 因为已经导入path成员,所以此处引用时不需要加sys.path#如果你要使用所有sys模块使用的名字,你可以这样:from sys import *print ( 'path:' , path )
4.代码块不使用{}来控制类、函数以及其他逻辑判断,使用缩进来写模块,缩进的空白数是可变的,但是同一语句块中的所有的代码块语句必须包含
相同的缩进空白数量。
5.可以使用斜杠 \ 将一行的语句分为多行。如果包含括号、中括号、大括号,就不需要使用多行连接符
1
2
3
4
|
print 'line1'\
'line2'
print 'line3'
'line4'
|
结果
6.input函数和raw_input函数
这两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互。但他们的功能不尽相同。
这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合
法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError
raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型
( int, float );同时在例子 1 知道,input() 可接受合法的 python 表达式,举例:input( 1 + 3 ) 会返回 int 型的 4
input() 本质上还是使用 raw_input() 来实现的,只是调用完 raw_input() 之后再调用 eval() 函数,所以,你甚至可以将表达式作为 input() 的参
数,并且它会计算表达式的值并返回它。
不过在 Built-in Functions 里有一句话是这样写的:Consider using the raw_input() function for general input from users.
除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。
看到了http://www.w3cschool.cc/python/python-basic-syntax.html 等待用户输入
7.复合语句,像if while def class 这样的复合语句,首行以关键字开始,以冒号 : 结束。
8.变量赋值,在python中不需要在声明变量时确定变量的类型,变量的声明和赋值是一起进行的,这个和JS中的变量var有点相似,只不过不需要在
变量名前加var(或者类似的关键字)。只有变量赋值后,该变量才会被创建。我理解变量名就是不同类型对象的索引,只是一个索引。
变量可以这样赋值,多个变量赋值:
9.python中的五个基本的数据类型
-1.Numbers类型
数据类型是不允许改变的,改变了数字数据类型的值,相当于重新分配了内存空间。
使用del关键字来删除数字引用,删除多个对象时,用逗号分隔。
del var1 [, var2 [, var3 ]]
支持四种不同的数值类型
整型(Int)、长整形(long integers):无限大小的整数,用字母L或者l来结尾、浮点型(float):可以用整数.整数来表示,也可以用科学计数法
来表示、复数(complex):虚部以i或者j来结尾,例如 1+2i或者complex(a,b),复数的实部虚部都是浮点型。
拥有很多类型转换函数、随机数相关函数、数学类函数、三角函数等...
-2.String类型python的字符串用单引号或者双引号包裹,没有单字符类型,单个字符也当是一个字符串。
字符串引用可以当做一个数组来使用,索引出单字符或者一段子串操作符 in (not in 类似)
原始字符串,所有的字符串都是直接按照字面的意思上来使用,没有转义特殊或不能打印的字符,原始字符串除了在字符串的第一个引号前加上字母
r (可以大小写)以外,与普通字符串有着相同的语法,注意字符串的最后一个字符不能是反斜线 \ ,这样的话解释器就不知道是否是这个字符串的
结尾。这个语法在使用正则表达式时候很有用。
三引号的使用:三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符
比如\n和\t都会被保留,这样的好处是你可以替换一些多行的文本。当需要一块sql或者html时,特殊字符的转义将很麻烦。可以是三个单引号,也可
是三个双引号。
定义一个unicode字符串
u 'Hello world!'
>>> print 'hello ' * 3#hello hello hello
列表的元素类型可以不同
a = [ 1 , '2' , 3.3 ]
获取列表元素的方法:
通过下标索引,和其他语言的数组一样。
通过在中括号中使用 : 来截取列表
通过python的内建方法来获取
注意,列表的的元素可以正向索引,第一个元素的下标是0,也可以反方向索引,最后一个元素的索引是-1,-2...-len(a)
a = [ 1 , 2 , 3 , 4 , 5 ]# a[0] == a[-5]# ...# a[4] == a[-1]
+ 用于连接列表,* 用于重复列表
-4.python元组 tuple
不同于list的是:
用()来包裹元素;
元素不能二次赋值(list可以),相当于只读列表;
由于上一条可以推出,元组的元素是不能单独使用del语句的
任意无符号的对象,以逗号隔开,默认为元组
print '123' , 123 , "xyz" , 1.234
不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来。
我们知道定义一个空的元组是这样的
t = ()
括号既可以表示tuple,也可以表示数学公式中的小括号,这样就产生了歧义,在这种情况下,按小括号进行计算,计算结果自然是1。因此,规定,只有一个元素的tuple定义时
必须添加一个逗号来消除歧义。
t = (, 1 )
t = ( 'a' , 'b' , 'c' ,[ 'd' , 'e' ])t [ 3 ][ 0 ] = 'f't [ 3 ][ 1 ] = 'g'print t # ('a','b','c',['f','g'])
-5.字典
我感觉字典和java中的map类很类似,由键和值组成,由花括号包裹内容。键必须独一无二,必须是不可变对象,数字、字符串、tuple、frozenset
等等,值可以是任意可hash化的对象。
hash是一种函数映射,称为hash函数,y=hash_func(x),可hash就是指对于一个对象x有其对应的y。在python内部是通过字典key的hash值来对应内存中的value地址
的,所以两个相同hash的key就表示同一个了,而不可hash的对象自然也不能作为字典的key。
10. print格式化输出 以 % 为分隔格式化字符串与参数(集合)
http://www.w3cschool.cc/python/python-variable-types.html
11.python基础教程 让脚本像普通程序一样运行
在类unix系统中,在脚本的第一行 #!/user/bin/env python 就可以直接运行PYTHON脚本,而不许要显示的使用python解释器。
简单的说就是 以前要 python hello.py ,现在直接hello.py即可。
原理解释:
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里
查找python的安装路径,再调用对应路径下的解释器程序完成操作。
12.repr()函数,创建一个字符串,以合法的Python表达式的形式来表示值
实质上是两种值被转换为字符串的机制,一是通过str函数str(),会把值转换为合理形式的字符串,二就是通过repr函数了。
13.和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和
传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变
对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。