0,执行python
python hello.py
或者
//hello.py #!/usr/bin/env python //在要执行的文件最前面加上,这样可以省去写python # -*- coding: utf-8 -*- //不写这个输出的中文可能出现乱码 ...代码
chmod a+x hello.py //给执行的权限 ./hello.py //直接执行不需要在前面加python
1,变量 跟js一样
2,运算符
整数和整数进行运算时只能取整,例如:
3/2 = 1
如果想保留小数那么就:
3.0/2=1.5
3.0//2=1
平方
3**2=9
3,类型(python可以根据值来定义类型)
整数int -2,147,483,648到2,147,483,647
例如:num=123123 //默认int,如果长度超过int,类型就会自动变为long类型
浮点数float
例如:num=1.0
字符串,例如
str=’abcde’
布尔类型
True False (在进行条件判断时,首字母一定要大写)
字符串的属性和方法
str=’abcde’
[] //获取字符串指定内容
len() //返回长度
+ //拼接
* //重复几次
in //判断是否在字符串中,返回布尔值
max() //返回最大值
min()
cmp() //字符串之间比较,返回值有1,-1,0
注意:当我们声明一个变量str=’123’即使改变了值为str=’111′,其实也是重新开辟了一个人内存空间,也就是说
我们并没有修改之前的值,只是另外开启了一个新的内存空间。
4,元组(类似数组)
t=() //空元组
t1=(1,) //只有一个元素的元组,必须加逗号
t2=(‘aa’,123) //一般元组
t2[0] //获取元组第一个元素
a,b=(‘aa’,123) //将元组内容对应声明给一个变量
元组一旦创建了就不能修改,否则报错
5,列表 (类似数组)
t1=[1] //只有一个元素的元组
t1[0] //获取列表第一个元素
t1.append(‘hello’) //在末尾添加一个元素为hello
t1.remove(‘hello’) //删除指定内容
del(t1[0]) //删除t1第一个元素
列表里面的元素是可以修改的。
6,字典 (类似对象)
obj={‘name’:’chen’}
obj[‘name’] //取值
obj[‘name’]=’ge’ //修改
obj[‘age’]=11 //添加额外索引值(不一定添加到末尾)
del(obj[‘name’]) //删除指定索引
obj.pop(‘name’) //删除指定索引,返回删除的值
obj.clear() //删除obj里面所有内容
字典(既是对象)有自己的方法:
//清除字典所有内容
obj.clear()
//取值,如果值不存在返回自定义的内容
obj.get(5,’自定义内容’)
//返回字典的全部索引值,以列表类型返回
obj.keys()
//返回字典所有值,以列表类型返回
obj.values()
7,语法
*python的语法没有花括号{}来区分代码块,所以用缩进的形式进行区分。类似jade模板一样。
连接符号是+
8,逻辑运算符
and or not
类似js的
&& || !
9,条件语句
if else
if True:
print 1
else:
print 2
if 1==1:
elif 2==2:
else:
10,遍历
for x in “abcd”:
print x+”1″ //循环4次
for x in [0,1,2,3]:
print x+”1″ //循环4次
range(5) //[0,1,2,3,4]
range(1,6) //[1,2,3,4,5]
range(1,6,2)//[1,3,5]
for x in range(100):
print x+”1″ //循环100次
(类似js的for(){}语法)
x=0
while x<10:
print “1”
x+=1
11,函数
def run(a,b):
c=a+b
print c
run(1,1)
12,作用域(跟js的理解一样,重点是如何让一个局部变量变为全局变量)
//声明
def run():
global x
x=123
//调用
run()
13,匿名函数lambda,(作用是让函数变的简单,类似于js的三元表达式是if else的简写)
g=lambda x:1+x
print g(3) // 4
相当于
def g(x):
return x+1
print g(3) // 4
14,python自带函数,(有很多,这里我们推荐常用的)
http://www.jb51.net/article/60896.htm
15,模块
//被调用包 a.py
def g(x):
return x+1
if __name__==’__main__’:
print ‘ziji’ //a.py调用自己时触发
elif __name__==’a’:
print ‘zhiyou_a’ //只有引入a.py时被触发
//调用包 b.py
import a
print a.g(3)
如果希望被指定的包调用那么就利用__name__做判断
16,包,多个模块存放在一个文件夹下就组成一个包
在一个文件夹根目录下创建一个名字为__init__.py
1,在一个文件夹名为bao下创建一个文件名为__init__.py的文件
2,在bao文件夹下创建一个a.py内容是
def g(x):
return x+1
3,调用包里面的a.py里面的g函数
import bao.a //包名就是文件夹名
print bao.a.go(2)
关于导入包的方式:
1,import 包/模块
2, import 包/模块 as 自定义名
3, from 包/模块 import 模块/函数名 (推荐使用)
17,正则
18,本地文件读、写操作
r 只读
r+ 读写,相当于追加内容。注意,必须打开文件后在读取内容后在写入,这样才是追加效果。如果打开后就直接写入就是覆盖原来内容效果了。
w 写入,先删除文件后写入,如果没文件就创建 (会删除文件慎用)
w+ 读写,先删除文件后写入,如果没文件就创建(会删除文件慎用)
fo=open(‘/root/1.txt’,’r+’) //打开文件
fo.read() //查看内容
fo.write(“/n hahahah”) //追加内容
fo.close() //看完后关闭