Python笔记之不可不知
Python软件已经安装成功有很长一段时间了,也即或多或少的了解Python似乎也很长时间了,也是偏于各种借口,才在现在开始写点总结。起初接触Python是因为公司项目中需要利用Python来测试开发的接口,于是开始了解这门解释性,面向对象,带有动态语义的高级语言,或是脚本语言,或是胶水语言。便在网上找了一个现成的Python爬虫,在本地测试运行成功,将新浪上面的所有博客地址扒取下来。真心想从基础学起,自己写个,于是,有了这份基础总结,项目模块的开发将在下一篇博文中贴出。敬请关注!
本博文仅记录自己学习Python过程中的点滴,与诸位喜欢Python的菜鸟朋友分享。本博文版权归作者和博客园所有,欢迎转载,但请保留本博文的出处。作者:itRed 联系邮箱:it_red@sina.com 博客链接:http://www.cnblogs.com/itred GitHub链接: https://github.com/itRed
一.Python产生
1989年圣诞节,阿姆斯特丹,Guido van Rossum 开发而成。
二.Python的特征
- 语言简单;
- 解释性和编译性;
- 面向对象编程;
- 高级语言(无需考虑如内存管理一类的底层知识);
- 可扩展性和可嵌入性(很好的和C,C++,JAVA等);
- 免费开源;
- 可移植性;
- 丰富的库。
三.Python的文件类型
- 源代码:以'py'为扩展名的文件,该文件由Python程序进行解释,不需要编译;
- 字节代码:Python源代码经过编译后生成扩展名为’pyc’的文件;
编译方法:
>>>import py_compile
>>>py_compile.compile(文件名.py)
3. 优化代码:经过优化后的源文件,扩展名为’.pyo’
编译方法:
>>>python –o –m py_compile 文件名.py
四.Python重点笔记
正是因为python比较简单,所以很多关于很多语言都比较常见的语法在这里就不再赘述了。只是介绍一些比较有特点的基础知识。
- 查看变量的内存位置:
>>>a=2
>>>id(a)
2. 求幂运算符(**):
>>>2**3
8
3. 整数除法(//):
>>>3.0//2
1.0
4. 复数表示法(Complex):
>>>c=3.14j
5. 序列:主要包含字符串,列表,元组等。
- 元组(“()”)
(1) 元组案例
>>>t=(‘red’,20,’male’)
>>>t[0]
'red'
>>>t[1] 20
>>>t[2]
'male'
>>>t
('red', 20, 'male')
(2) 空元组:newtest=()
(3) 单元素元组:newtest2=(2,) *必须要加逗号
2. 列表(”[]”)
(1) 序列是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目。可以对元素进行赋值操作。
(2) 列表的组成包含了多个以逗号分隔开的数字或字符串。
(3) 案例:
>>>list1=['red',’test’,’张三’]
>>>list2=[1,2,3,4,5]
>>>list3=['str1',’str2’,’str3’]
>>>listred=[‘red’,20,’male’]
>>>listred[0:3]
['red',20,’male’]
(4) 空序列:
>>>list=[]
(5) 列表的基本操作:
取值:切片和索引,list[]
添加:list.append()
删除:del(list[])
List.remove(list[])
修改:list[]=x
查找:var in list
1. Python控制流程
就Python的语法而言,基本具有一般语言通用的。判断语句,for循环语句,switch语句等等。都是十分基础的。用几个简单的案例来说明Python这样简单的语言效果会更好。
>>>for x in 'hello':
…… print x
h
e
l
l
o
>>>st='hello'
>>>for x in range(len(st)):
…… print st[x]
(输出结果同上)
2. if语句:
>>> x=0
>>> if x==0:
... print ''
... else:
... print ''
...
0
3. 索引(迭代序列指数):遍历每个项目的另一种方法是由序列本身的偏移指数(索引)。迭代就是重复执行一个命令。
>>>fruits=['banana',’apple’,’orange’]
>>>for index in range(len(fruits)):
… print 'fruit:',fruits[index]
… print ‘finish’
4. 字典的遍历:
>>> d = {1:111,2:222,3:333}
>>> for k,v in d.items():
... print k,v
...
1 111
2 222
3 333
>>>
5. 函数
函数就是为了完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它起一个名字。
可以通过函数名在程序的不同地方多次执行,这通常就是函数的调用,可以不用在所有的地方重复性地编写这些语句。
函数分为自定义函数和预定义Python函数,自定义函数是用户自己编写的函数,预定义函数是指系统自带的函数,还有一些第三方编写的函数,如其他程序员编写的一些函数,对于这些现成的函数,用户可以直接拿来使用。
def 函数名(参数列表): #可以没有参数列表
函数体
案例:
>>> def f(x):
... print x
...
>>> f(10)
10
>>> f('hello')
hello
>>> f([1,2,3,4])
[1, 2, 3, 4]
>>>
>>> def f(x,y):
... print x,y
...
>>> f(1,2)
1 2
>>> f('a','b')
a b
>>>
>>> t=['name','red']
>>> def f(x,y):
... print "%s:%s" % (x,y)
...
>>> f(*t)
name:red
>>>
>>> def f(name='name',age=0):
... print "name:%s" % name
... print "age:%s" % age
...
>>> f()
name:name
age:0
>>> t=(30,'red')
>>> f(*t)
name:30
age:red
>>> d={'name':'red','age':20}
>>> f(age=20,name='red')
name:red
age:20
>>> f(**d)
name:red
age:20
>>>
五. 总结
本片博文仅仅是Python基础的一部分,本人认为是重点中的重点,作为菜鸟级的Python爱好者,基础往往是走向大神的门槛。只有将基础烂熟于心,方可写出高效而且简洁的代码。对于使用这些基础的知识开发Python的简单模块将在下一篇博客中详细介绍,谨以此文献给奋斗中的自己!
邮箱:it_red@sina.com
个人博客: http://itred.cnblogs.com
版权声明:本文版权归作者和博客园共有,欢迎转载,但请在文章显眼位置标明文章出处。未经本人书面同意,将其作为他用,本人保留追究责任的所有权利。
Python笔记之不可不知的更多相关文章
- Python笔记之不可不练
如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- 20.Python笔记之SqlAlchemy使用
Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...
- Python笔记——类定义
Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- python笔记 - day8
python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...
- python笔记 - day7-1 之面向对象编程
python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...
- python笔记 - day7
python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...
随机推荐
- Travis CI用来持续集成你的项目
这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...
- .NET Core系列 :3 、使用多个项目
通过前面的两篇文章,我们已经知道如何创建新的项目,如何生成并运行我们的应用程序,也知道(大致) project.json 文件中的内容是什么意思.但大多数项目往往也需要多个项目或引用的类库.我们要创建 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- MVVM模式解析和在WPF中的实现(三)命令绑定
MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- Web性能优化:What? Why? How?
为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...
- Matlab 绘制三维立体图(以地质异常体为例)
前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...
- bzoj4724--数论
题目大意: B进制数,每个数字i(i=0,1,...,B-1)有a[i]个.你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要 用完所有数字),使得X是B-1的倍数.q次询问,每次询问X在B ...
- arcgis api for js入门开发系列五地图态势标绘(含源代码)
上一篇实现了demo的地图查询功能,本篇新增地图态势标绘模块,截图如下: 本篇核心的在于调用API的Draw工具:https://developers.arcgis.com/javascript/3/ ...
- Android事件分发机制浅谈(一)
---恢复内容开始--- 一.是什么 我们首先要了解什么是事件分发,通俗的讲就是,当一个触摸事件发生的时候,从一个窗口到一个视图,再到一个视图,直至被消费的过程. 二.做什么 在深入学习android ...
- photoshop:无法完成请求 因为暂存盘已满
今天photoshop打开一个问题,提醒:无法完成请求因为暂存盘已满 不用担心这个问题很好解决可能是你做的图比较大并不需要清理C盘空间 选择:编辑→首选项→暂存盘 设置第一暂存盘为D盘或E盘 总之 第 ...