学习笔记_58 python语法基础
1.python是解析型语言。
有点像javaScript在html运行一样,不需要mian函数入口,随时随地定义函数,执行函数,
执行语句,定义类型
2.python能面向对象
3.python使用地址计数器,如
a = 1
b = 1
ida = id(a)
idb = id(b)
ida是等于idb的,就是说他们的内存地址一致,指向1这个int变量
3.del语句可以直接释放资源,变量名删除,引用计数减1,
如 2 中,1这个int实际上是由a和b引用的,,即“1”由两个引用,del a ,则将a这个变量注销,然后1这个int的地址计数-1;
*如果del a 后,还使用a作为赋值,输出等,会引发错误。
*python有垃圾回收,如果地址计数为0,那么内存可能会被回收。
4.如果想要在python中使用中文字符,要
#coding=utf-8 //类似于xml文件的enconding
5.python注释使用#,不是//或/**/
6.函数定义
def add(x,y):
z =x+y
return z
def add2(x,y):
z =x+y
return z
调用
res = add(8,5)
//不需要 ; 不需要{}来包括函数体 ,不需要声明变量类型,不需要声明形参类型
需要严格的缩进来维护一个语句块,需要使用:
8.如果函数内,要改变全局变量的值,要使用global关键字,如:
def changeNum():
global num
num = 8
num=10
changeNum()
print num
#num此时是8了
10 a**b表示 a的 b次幂
#如果b的数值很大,python依然能输出来,不想其他语言,对数值大小有限制
11 判断a和b是否为同一对象,使用
a is b 或 a is not b ,c#为 a.equals(b) ,返回类型都为bool
**********三元运算 result
=
值
1
if
条件
else
值
2 ,C# a = 条件?值1:值2
12
if a>b:
#aaaa
elif a==b:
#bbb
else:
#ccc
13.
while a!=b:
#xxxxx
14.
python 输入函数:
myname = raw_input("请输入您的名字:")
#这样,在控制台中,就能显示"请输入您的名字:",并且赋值到
myname变量当中
15.
for a in "aaaaa":
print a
for i in range(10)
#相当于 for(var i=0;i<10;i++)
16.
列表:list = [1,2,3,4]
list = [i+1 for i in range(10)] #特别适合初始化数组
list = map(lambda x:x+1, list) #通过map函数,和lambda x:x+1这个匿名函数,给list初始化
#相当于list<int>, 不同的是,可以del list[1] ,来删除列表中的"2",
这样列表就剩3个元素了
使用 list.Append(5)来追加元素
*****可以使用list.Append("aaaa"),来追加到里头,即使里面都是int类型的也行
****可以list.Append([2,3,6]),[2,3,6]作为其中一个元素
使用以下方法,达到C# 的list.Count, list.AddRange , list.Contains,
17.元组 --只读的列表
a = (1,2,3)
#元组是不能修改的,不能对里面的元素重新赋值
a[1] = 1 会报错
18 字典
dic ={"a":1,"b":2,"c":3} ,有点像json数据
keys = dic.keys()
values = dic.values()
value=dic["bb"]
//遍历
for key in dic:
print dic[key]
//删除元素
del dic["aa"]
18. 假如有aa .py
def method1:
#todo
def method2:
#todo
if __name__=='__main__'
#这句话的意思是,如果用python解析器直接执行这个文件,那么__name__就是__main__,这段代码就会被执行;如果是被import的话,这个__name__就是包名,所以这样写,可以单独为每个文件做调试
#todo