python基础学习笔记
来源:互联网 发布:linux中更改文件内容 编辑:程序博客网 时间:2023/12/03 10:16
#-*- 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
- Python基础学习笔记
- python基础学习笔记
- Python基础学习笔记
- python基础学习笔记
- python基础学习笔记
- python基础学习笔记
- 【Python学习笔记】基础
- Python学习笔记-基础
- Python 基础学习笔记
- Python基础学习笔记
- Python学习笔记(基础)
- Python学习笔记(基础)
- Python基础学习笔记
- Python基础学习笔记
- Python基础学习笔记
- Python学习基础笔记
- Python-基础学习笔记
- python基础学习笔记
- 日志管理
- android下JNI开发--02
- 学习git的相关疑问及笔记
- Java 网络编程
- stack和queue
- python基础学习笔记
- android 开发集合
- Android_01--Android入门+四大布局+点击事件+文件操作
- 黑马程序员——Java IO
- PullToRefresh使用详解(一)--构建下拉刷新的listView
- Ruby基础知识梳理
- 《Scuba: Diving into Data at Facebook》阅读笔记
- PullToRefresh使用详解(二)---重写BaseAdapter实现复杂XML下拉刷新
- js中的字面量与构造函数创建对象