python基础学习
来源:互联网 发布:淘宝店铺 花呗 编辑:程序博客网 时间:2024/05/16 10:06
1、python文件类型
1)源代码
后缀名:.py
由Python语言解释,不需要编译。
2)字节代码
后缀名:.pyc
Python源文件经过编译后生成的文件
编译方法: import py_compile
pt_compile.compile("hello.py")
3)优化代码
后缀名: .pyo
python -O -m py_compile hello.py
三种文件类型都可以直接运行。
2、python变量
1)变量的命名
-变量名只能是字母、数字、下划线
-数字不能开头
-不可以使用关键字
2)变量的赋值
-a = 1
-id(a):可以查看变量在内存中的地址编码
python语言变量一个特性:
- 变量只是对数据在内存上的引用,当对变量重新赋值的时候是地址改变。而且内存上,存在着多个变量指向同一个地址空间。
3、python运算符
-赋值运算符
=、+=、-=、*=、/=、%=
-算数运算符
+、-、*、 %
/ :实数除法
3/2=1
3.0/2=1.5
// :整数除法
3.0//2=1.0
** :求幂运算:2**3 = 8
-关系运算符
<、>、<=、》=、!=、==
-逻辑运算符
and、or、not
-按位运算
|、^、&、<<、>>、~
-注意python的优先级
4、python数据类型(type(partmenter) 可以查看数据类型 )
- 数字
-整型
-int(-2,147,483,648 ~ 2,147,483,647)
-长整型
-long (int 之外,的整数类型)
可以使用数据后面加上“L”就可以指定长整型a=123L;
-浮点型
-float (c=3.14)
-复数型
-complex (c = 3.14j)
- 字符串
-单引号
-双引号
-三重引号
“”“This is a simple“”“
-索引
a='abcde'
a[0]='a'
a[1:4]='bcd'
a[::2]='ace'
a[-1]='e'(最后一位)
a[-4:-1]='bcd'
a[-2:-5:-1]='dcb'(-1在这里表示从右往左取)
- 列表[]
-list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个系列的项目。
listTemp=['ydonghao',1992,'man']
listTemp=('ydonghao',1992,'man')
-列表是可变类型的数据
-列表的组成:用[]表示列表,包含了多个以逗号分隔开的数字,或者字串
-列表操作:
-取值
-切片和索引
-list[]
-添加
-list.append()
-删除
-del(list[])
-list.remove(list[])
-修改
-list[]=x
-查找
-var in list
- 字典{}、元组()
-字典是python中唯一的映射类型(哈希表)
-字典对象是可变的,但是字典的键必须使用不可变对象,并且一个字典中可以使用不同类型的键值
-keys()或者vaules()返回键列表或者值列表
-items()返回包含键值对的元组
-创建字典
dic={'name':'ydonghao', 'age':21, 'gender':'male'}
dic['name']='ydonghao'
注意:键值和变量之间的联系,不建议使用变量做键值
内建方法:fromkeys(),字典中的元素具有相同的值,默认为None
ddict={}.fromkeys(('x','y'), -1)(不是非常常用,一般还是使用上面的方法)
-字典更新,删除
-直接使用键值访问更新;内建的update()方法可以将整个字典的内容拷贝到另一个字典中。
添加:dict1['tel'] = '12345678901'
修改:dict1['tel'] = '10987654321'
-del dict['a']删除字典中键值为a的元素
-dict1.pop('a')删除并且返回键值为“a”的元素
-dict1.clear()删除字典所有元素
-del dict1删除整个字典
-字典相关的内建函数
-type(), str(), cmp()(cmp很少用于比较字典,比较的依次是字典的大小、键、值)
-工厂函数dict():
-例如:dict(zip('x','y'),(1,2))或者dict(x=1, y=2)
{'y':2,'x':1}
-一些常用内建函数
5、python流程控制
- if-else, python使用缩进作为其语句分组的方法,建议使用4个空格代替缩进。
#!/usr/bin/pythonif 1 < 2: print "OK"print "another ok"
-逻辑值Ture:表示非空的量(比如:string,tuple,list,set,dictonary等),所有非0的数
-逻辑值False:表示0,None(空值),空的量
#!/usr/bin/pythonx = int(raw_input("please input:"))if x >= 90: print "A"elif x >= 80: print "B"elif x >= 70: print "C"else: print "D"
6、循环
-for循环
for iterating_var in sequence
statements(s)
注意:如果一个序列包含一个表达式列表,它是第一个执行。然后,该序列中的第一项赋值iterating_var。接下来,执行 语句块。列表中的每个项目分配到itering_var,代码块被执行,直到整个序列被耗尽。
格式遵守代码块缩进原则。
#!/usr/bin/pythonfor x in "abcd": print x + " hello world"
#!/usr/bin/pythonfor x in ['1','2','3','4','5']: print x + " hello world"
#!/usr/bin/pythonfor x in range(2,99,1): print x , " hello world"
range(i,j,[,步进值])
-如果所创建的对象为整数,可以使用range,
-i为初始数值
-j为终止数值,但不包含在范围内,步进值为可选参数,不选的话默认为1
-i不选的话默认为0
从1加到100
#!/usr/bin/pythonnum = 0for x in range(1,101): num += xprint num
遍历
实例一
#!/usr/bin/pythonfor x in "hello": print x
实例二
#!/usr/bin/pythons="hello"for x in range(len(s)): print s[x]
实例三(迭代遍历)
#!/usr/bin/pythons = "hello"l = [1,2,3,'a','b']t = (7,8,9,'x','y')for x in l: print xfor x in t: print xfor x in range(len(s)): print s[x]
实例四(字典遍历)
#!/usr/bin/pythond = {1:111,2:222,5:555,3:333}for x in d: print x print d[x]print d.items()for k,v in d.items(): print k print v
实例五(循环控制)
#!/usr/bin/pythonimporttimefor x in range(5): print x time.sleep(1)else: print "ending"for循环的正常循环完应该是输出‘ending’,
异常退出时(如执行循环过程中按了Ctrl+C ,退出程序)不会执行到“else:”
实例6
#!/usr/bin/pythonfor x in range(1,11): print x ifx == 3:pass ifx == 2:print"hello ydonghao"continue ifx == 5:exit() ifx == 6:break print "#"*50else: print "ending"
正常可以使用break退出for循环。continue是退出当次循环。pass起到占位的作用,称为代码桩,什么都没有做。
-while循环
while循环,直到表达式变为假。表达的是一个逻辑表达式,必须返回一个True或False值
while expression:
statements(s)
注:遵循代码块缩进原则
实例7(按Enter,或者输入q,退出程序)
#!/usr/bin/pythonx = ""while x != 'q': print "ydonghao" x = raw_input("please input something,q for quit: ") if not x : breakelse: print "ending......"正常退出执行else,否则不执行。
7、函数
-定义函数的语法
def 函数名(参数列表) : #可以没有参数
函数体
-形参和实参和C 语言的行参,实参意义相差不大
-f(name="ydonghao",'age'=30)指定参数传值
-def machine(x="默认参数值",y="默认参数值")
print x,y
-machine(10) ---------------> 10,默认参数值
-machine() ----------------> 默认参数值,默认参数值
-machine(y='ydonghao')----> 默认参数值,ydonghao
注意:默认参数要求从右边开始赋值。
-python的局部变量,全局变量和C 语言相差不大,
global可以将局部变量声明为全局变量。
实例8(全局变量和局部变量)
#!/usr/bin/pythonx = "I am global var"def fun(): global y y = 200 global x x = 100print xfun()print x
-函数返回值
-函数被调用后会返回一个指定的值,return执行后,函数终止
-函数调用后默认返回None
-返回值可以是任意类型,
-函数多类型传值
-向函数传元组和字典
实例9(传递元组,加上"*",声明该参数是一个元组,传递一个字典时加上"**"声明该参数是一个字典)
#!/usr/bin/pythont = ('name', 'ydonghao')d = {'y':'ydonghao','x':'name'}def fun(x, y): print "%s : %s" % (x, y)fun(**d)fun(*t)
-传值冗余
-处理多余实参(将可能有,可能没有的参数声明成一个元组或者字典,后面不管有多少个参数都会被元组或者字典接收)
#!/usr/bin/pythondef f(x, *args, **kwargs): print x print args print kwargsf(1,2,3,4,5,6,y=20,z=30)
8、lambda表达式
-匿名函数
-lambda函数是一种快速定义单行的最小函数,是从Lisp语言中借用来的,可以用在任何需要函数的地方。
实例10(lambda函数和正常函数对比)
#!/usr/bin/pythondef f(x, y): return x*yprint f(2,3)g = lambda x,y:x*yprint g(2,3)-使用lambda的好处
-使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。
-对于一些抽象的,不会别的地方再复用的函数,有时候给函数起一个名字也是难题,使用lambda不需要考虑命名的问题
-使用lambda在某些时候让代码更加容易理解。
-lambda语法:
冒号前面的是参数,可以有多个,用逗号隔开,冒号右边是返回值。
lambda语句构造的其实是一个函数对象。
9、switch实现
python没有提供switch。使用数据字典调用函数
{1:case1,2:case2}.get(x, lambda *args, **key:)()
实例11
#!/usr/bin/python#coding:utf-8from __future__ import divisiondef add(x,y): return x + ydef minus(x,y): return x - ydef mul(x,y): return x * ydef divide(x,y): return x / yoperator = {"+":add, "-":minus, "*":mul, "/":divide}print operator["+"](3,2)def f(x, o ,y): print operator.get(o)(x,y,*args,**kwargs)f(5,"*",6)
- Python学习----Python基础
- Python基础学习-Django基础
- Python学习笔记-Python基础
- Python学习笔记--Python基础
- 【Python】python基础学习笔记
- 学习Python基础
- 学习Python基础
- python基础学习
- python基础学习
- Python基础学习笔记
- Python基础语法学习
- Python基础学习
- Python学习----基础篇
- Python基础学习_1
- python基础学习
- python学习--基础篇
- python基础学习
- python基础学习
- 计数排序C语言代码
- [互联网面试笔试汇总C/C++-2] 网易有道-1
- MySQL实用命令
- 英语口语教程
- 泛型
- python基础学习
- android 摄像头切换---但在电视上测试失败
- Java程序连接MySQL数据库
- 倒置字符串
- linux 之最常用的20个命令
- DBA应该知道的RAID卡知识
- Poj 3422(最小费用流)
- 编程实现二叉树的建立,前序遍历,中序遍历和后续遍历
- 黑马程序员 异常