python基础学习笔记

来源:互联网 发布:linux中更改文件内容 编辑:程序博客网 时间:2024/05/17 08:27
#-*- coding:utf-8 -*-# 变量(variable)print '**********************************************************'i=7print i# 字符串# 单引号print '**********************************************************'c1 = 'gf'print c1c2 = 'It is a "dog"'    #双引号会输出来print(c2)# 双引号print '**********************************************************'c1 = "gf"print c1c2 = "It is a 'dog'"print(c2)# 三引号print '**********************************************************'c = '''hesheyouhello'''print c# 转义符print '**********************************************************'c2 = 'It is a \'dog\''print(c2)print 'hello \nhow are you'# 自然字符串print '**********************************************************'print 'hello \nhow are you'print r'hello \nhow are you' #加个r,转义了也能原样输出# 字符串的重复print '**********************************************************'print 'hello gril\n'*3# 子字符串print '**********************************************************'c1 = 'giantbranch'print(c1[0])print(c1[5])print(c1[:2])print(c1[2:])print(c1[2:7])# 列表print '**********************************************************'student = ['gaint', 'branch', 'james', 'john', 'jerry']print(student[3])student[3] = 'haha'print(student[3])# 元组print '**********************************************************'student = ('gaint', 'branch', 'james', 'john', 'jerry')print(student[3])#student[3] = 'haha'# print(student[3])         #报错# 集合(set)print '**********************************************************'a = set('aaabcdefg')b = set('efg')##交集x = a & bprint x##并集x = a | bprint x##差集x = a - bprint x##去除重复元素new = set(a)print new# 字典(关联数组)print '**********************************************************'dic = {'name':'giantbranch','home':'guess','hobby':'sport'}print dic['home']##添加字典里的项目dic['add'] = 'test add'print dic['name']print dic['add']# 标识符print '**********************************************************'vid = '233'print vid# 开头不能为数字,报错# 2vid = 'gfdgdf'# print 1vid_id = 'test'print _id# pickle腌制print '**********************************************************'import pickle##dumps(object)将对象序列化list1 = ["james", "giant", "branch"]list2 = pickle.dumps(list1)print list2##loads(string)将对象原样恢复,并且对象类型也恢复原来的格式print '**********************************************************'list3 = pickle.loads(list2)print list3##dump(object, file) 将对象存储到文件里面序列化group = ('baidu', 'google', 'yahoo')fp = file('1.txt', 'wb')    #w:write b:binary(二进制文件)pickle.dump(group, fp, True)fp.close()##load(object, file)将dump()存储在文件里面的数据恢复print '**********************************************************'fp1 = file('1.txt', 'rb')   #r:readgroup1 = pickle.load(fp1)fp1.close()print group1# 逻辑行与物理行print '**********************************************************'##以下是三个物理行print '123'print '456'print '789'##以下是1个物理行,3个逻辑行print 'cba';print 'ddd';print 'nihao'##以下为1个逻辑行,3个物理行print '''hahdi3 '''###一个物理行含有多个逻辑行,中间要用分号隔开# 行连接print '**********************************************************'print "i am\ you"##上面没\就会报错#缩进print '**********************************************************'a = 1#  print a #报错#如何缩进##一般情况下,行首应该不留空白import sys##缩进的方法有两种,可以空格,也可以按tab键##if语句缩进方法a=3if a > 0:    print 'hi'##while语句缩进方法print '**********************************************************'a = 0while a < 3:    print a    a+=1####注释: 当行注释用#号 ,多行注释用3引号 ,#"""可以用作注释用途,但是它不等价于注释。'''hahahhahahahprint("我在注释里")print ("我还在注释里")'''#运算符print '**********************************************************'##'+':两个对象相加###数字相加print 5+6###字符串相加(连接)print "Good,"+"hi"print '**********************************************************'##'-':取反或两个数字相减print -5print 8-6print '**********************************************************'##'*'两个数相乘或重复print 5*6print 'A'*5print '**********************************************************'##'*'两个数相除print 7/2   #结果为3print 7/2.0 #结果为3.5print '**********************************************************'##'**'求幂运算print 2**3     #2的三次方=8print '**********************************************************'##'<':返回一个bool值print 2>3   #False##'<=':返回一个bool值print 3<=3  #True##'>':返回一个bool值print 9>7   #True##'>=':返回一个bool值print 5>=6  #False##'!=':返回一个bool值print 1 != 2print 1 != 1##'==':返回一个bool值print 8==7  #Falseprint 'he'=='he'    #trueprint '**********************************************************'##'//':除法运算,返回其商的整数部分,舍去余数print 9//2.0   #4.0##'%':除法运算,返回其商的余数部分,舍去商print 9%2print 4%2       #0print '**********************************************************'#'&':按位与运算,所谓的按位与是指一个数转化为二进制,然后这些二进制数按位来进行与运算print 8 & 17    #结果为0'''8: 0100017:10001&: 00000'''print '**********************************************************'#'|':按位或运算,所谓的按位或是指一个数转化为二进制,然后这些二进制数按位来进行或运算print 8 | 17    #结果为11001,即25#'^':异或print 9 ^ 17    #24#'~':按位翻转, ~x = -(x+1), 不懂请看 http://www.zybang.com/question/fd3efaf5df51304072fc757b550deeb1.htmlprint ~8    #-9print '**********************************************************'#'<<':左移,相当于乘以2的n次幂print 8<<1  #16#'>>':右移,相当于除以2的n次幂print 16>>3 #2print '**********************************************************'#not:逻辑非print not True  #Falseprint '**********************************************************'#and:逻辑与print True and Trueprint '**********************************************************'#or:逻辑或print False or True#优先级实战,优先级排行榜print '**********************************************************'#第1名:函数调用,寻址,下标#第2名:幂运算 **print 4*2**3#第3名:翻转运算   ~#第4名:正负号print 2+4*-2#第5名:*,/,%print 2+4*2/4#第6名:+,-print 3<<2+1#第7名:<<,>>#第8名:按位&,|,^#第9名:比较运算符print 2*3+5<=5+1*2#第10名:逻辑的not,and,or#第11名:lambda表达式#控制流#控制流功能##重复执行3段同样的程序#方式1:print '**********************************************************'i=0print ii=i+1print ii=0print ii=i+1print ii=0print ii=i+1print i#方式2:print '**********************************************************'for k in range(0,3):    i=0    print i    i=i+1    print i#控制流分支结构print '**********************************************************'a = 2if a == 2:    print '2b'else:    print '可以啊'#控制流的三种类型:顺序结构,分支结构,循环结构#顺序结构print '**********************************************************'a = 2print aa = a-1print a#分支结构print '**********************************************************'a = 4if a==6:    print '666'else:    print 'bitch'#循环结构print '**********************************************************'a = 3while a:    print 'hello'    a = a -1#if语句print '**********************************************************'a = 2#1if a!=2:    print 'right'#2if a>5:    print '>5'elif a==5:    print '==5'else:    print '<5'#while语句print '**********************************************************'#1# b = True# while b:#     print 'hello'#2#while判断为False,退出循环,然后执行一次elseb = Falsewhile b:    print 'hello'else:    print 'False'#if语句print '**********************************************************'#格式# for i in 集合:#     执行该部分# else#     执行该部分#1(输出集合元素)for i in [1,2,8,7]:    print i#2(控制输出次数)# print '**********************************************************'# print range(1,5)print '**********************************************************'for i in range(1,5):    print 'hello'#3(第三那个参数为间隔)输出1,3,5,7,9,for i in range(1,10,2):    print i#4print '**********************************************************'for i in range(1,10):    if i%2 == 0:        print i        print '偶数'    else:        print i        print '奇数'#break语句(退出循环)print '**********************************************************'#1a = 1while a:    print a    a = a + 1    if a == 6:        break#2print '**********************************************************'for i in range(5,9):    print i    if i > 6:        break#3print '**********************************************************'a = 10while a <= 12:    a = a + 1    for i in range(1,7):        print i        if i == 3:            break#4print '**********************************************************'a = 10while a <= 12:    a = a + 1    for i in range(1,7):        print i        if i == 3:            break    if a == 11:        break#continue语句(跳到下一次循环)print '**********************************************************'#1a = 2while a < 7:    a = a + 1    if a == 3:        continue    if a == 4:        continue    print a#函数#系统自带函数print '**********************************************************'##计算字符串长度print len("hello nihao")##字符串切割a = 'hacker'b = a.split("c")    #分成列表print b##自定义函数#格式# def 函数名():#     自己写功能print '**********************************************************'def a():    print 'hello';print 'hacker'a()print '**********************************************************'#什么是形参def func(a ,b):    print a + b#什么是实参func(1,7)#关键参数print '**********************************************************'def func2(a = 1, b =2, c =3):    print a    print b    print cfunc2(5)func2(b=7,a=8)func2(b=4,c=2,a=1)#全局变量与局部变量(在函数中加global声明为全局变量,我在学php的时候不推荐在函数中声明全局变量,应该都一样的吧)print '**********************************************************'def funcquan():    global i    i =7    print ii = 9print ifuncquan()i = 9print i#返回值print '**********************************************************'def add(a,b):    return  a+bprint add(5,6)#多个返回值def morereturn(i,j):    k = i*j    return (i,j,k)#1x = morereturn(4,6)print x#2print '**********************************************************'y,z,m = morereturn(4,6)print m#文档字符串(在函数开头加注释)print '**********************************************************'def docString(i,j):    '''这个函数实现一个乘法运算    :param i: 第一个乘数    :param j: 第二个乘数    :return:乘法结果    '''    k = i * j;    return kprint docString.__doc__ #输出文档字符串print '**********************************************************'help(docString) #输出文档字符串#模块#这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块#模块就是一些函数和类的集合文件,可以打开python的Lib目录看看里面的文件print '**********************************************************'#导入模块import mathprint math.pi#sys模块(跟系统功能有关)# import sysprint '**********************************************************'##查看python版本信息print  sys.version##查看Python的安装目录print sys.executable##操作系统的版本print sys.getwindowsversion()##sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules都将记录这些模块。字典sys.modules对于加载模块起到了缓冲的作用。当某个模块第一次导入,字典sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。print sys.modules.keys()    #输出已导入模块的关键字print '**********************************************************'#字节编译:将模块编译成二进制语言程序的过程,它是由python解析器去完成的#.pyc文件就是模块编译后对应的二进制文件#.pyc文件的生成#比如我们写了自己的一个模块,我们用import导入,解析器先去寻找看看有没有.pyc文件,有就直接用,没有就将.py文件通过字节编译成.pyc文件print '**********************************************************'#from .... importfrom sys import version #只导入模块的某个功能,而不用像上面的那样要写sys.version了print versionprint '**********************************************************'#from .... import *   导入模块的所有方法from math import *print piprint cos(pi)print '**********************************************************'#主模块:自己执行,不是被调用print __name__  #输出 __main__#非主模块:被别人import的#__name__属性:属性若为__main__,就是主模块,否则为非主模块print '**********************************************************'if __name__ == "__main__":    print "It's main"else:    print "It's not main"   #若本文件被import,就会输出else的内容print '**********************************************************'#自定义模块(用户自己定义的):将自己编写的函数或者类写在.py文件中,然后放在python目录下的Lib目录或者工程的当前目录#例import  myModelprint add(5,6)##其中myModel.py的代码如下,文件放在当前目录即可# def add(a, b):#     return a+bprint '**********************************************************'#dir()函数:查看指定模块的功能列表import sysprint dir(sys)print '**********************************************************'import mathprint dir(math)print '**********************************************************'#dir()扩展:还能查看指定对象的功能列表l = []  #这是一个空列表print dir(l)    #查看列表有什么方法# 数据结构##python内置的数据结构有列表,元组,字典等print '**********************************************************'# 现有三个物品,分别是"apple","orange","pear",现在要将三个物品储存起来# 储存方式1:按顺序分别存储到一个柜子中,这些物品可以取出来,放新的物品["apple","orange","pear"]          #列表# 储存方式2:按顺序分别存储到一个柜子中,这些物品不可以取出来,也不可跟新物品同挤一个柜子("apple","orange","pear")           #元组# 储存方式3:按顺序分别存储到一个柜子中,而且每个柜子得有个名称{"a":"apple","b":"orange","c":"pear"}# 栈print '**********************************************************'#栈的实现class Stack():    # 构造方法    def __init__(st, size):        st.stack = []     #可以看出栈是在列表上做限制而成的        st.size = size    #栈的大小        st.top = 0        #栈顶初始值为0    def push(st, content):        if st.Full():            print  "Stack is Full"        else:            st.stack.append(content)            st.top = st.top + 1    def pop(st):        if st.Empty():            print "Stack is Empty!"        else:            st.top = st.top -1    def Full(st):        if st.top == st.size:            return True        else:            return False    def Empty(st):        if st.top == 0:            return True        else:            return False#使用StacktestStack = Stack(8)print  testStack.Empty()   #TruetestStack.push("Hello")print  testStack.Empty()   #FalsetestStack.pop()print  testStack.Empty()   #Trueprint '**********************************************************'# 队列(一端插入(队尾),一端删除(队首),想想排队就好)print '**********************************************************'# 队列的实现class Queue():    def __init__(qu, size):        qu.queue = []        qu.size = size        qu.head = 0        qu.tail = 0    def Empty(qu):        if qu.head == qu.tail:            return True        else:            return False    def Full(qu):        if qu.tail - qu.head == qu.size:            return True        else:            return False    def enQuene(qu, content):        if qu.Full():            print "Quene is Full!"        else:            qu.queue.append(content)            qu.tail = qu.tail + 1    def outQuene(qu):        if qu.Empty():            print "Quene is Empty!"        else:            qu.head = qu.head + 1# 使用队列q = Queue(3)print q.Empty()   #Trueq.enQuene('1')q.enQuene('2')q.enQuene('3')print q.Empty()   #Falseprint q.Full()    #Trueq.outQuene()q.outQuene()q.outQuene()print q.Empty()   #True


0 0
原创粉丝点击