<h1>DAY1——Python简介及入门<\h1>
python简介
- 16年python新排名:

- python的应用领域:
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团、sogou等。互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。
python之父:van rossum 1989圣诞节假期
python在linux系统中的独特地位。
python解释器
python是一门解释性语言,什么是解释性语言呢?
解释性语言:解释型语言,是在运行的时候将程序翻译成机器语言。
**编译器和解释器的区别
解释性语言要想对代码做解释,就需要一个解释器,什么是解释器?
python解释器做的事:

解释器都有哪些呢?
Cpython:用C实现的Python解释器。
Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
Jython:用java实现的Python解释器。
在Python中可以直接使用Java代码库,这使得使用Python可以方便地为Java程序写测试代码,更进一步,可以在Python中使用Swing等图形库编写GUI程序。
Jython会将Python代码动态编译成Java字节码,然后在JVM上运行转换后的程序,这意味着此时Python程序与Java程序没有区别,只是源代码不一样。
在Python 中写一个类,像使用Java 类一样使用这个类是很容易的事情。
你甚至可以把Jython 脚本静态地编译为Java 字节码。
IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
Pypy:用Python实现的Python解释器。
将python代码转换成python的字节码转换成机器码。
因为使用了JIT技术,JIT解释器可以使得运行在它之上的程序比传统解释器快。而JIT这项技术本身跟实现这个技术的语言是无关的。
Pypy的前身psyco,就是用C语言直接实现了JIT解释器。但是C因为跟底层过于接近,所以实现JIT解释器有诸多限制。(比如Psyco到项目死亡为止都没能实现出64位的JIT解释器)
Pypy则换了另外一种思路。它先实现了一个Python的子集(注意,不是完整的python),叫RPython。然后用RPython去实现了Python的JIT解释器。这个RPython本身,并不依赖运行时解释器,而是直接被翻译成C代码(实际上可以翻译成多种目标代码,如Java、C#等)再进行编译,本质上它是一种编译型语言。
所以,用RPython写出来的程序,最终是会被编译成本地代码的,跟C写的没有本质区别。由于RPython作者强大的优化功力,RPython程序最终编译结果基本等同于C直接写的效率。用这种程序实现出来的JIT解释器,自然也不会慢。而JIT技术,又保证了运行在这个解释器上的Python程序的效率的提升。这样一来,Pypy比传统Python快,就不足为奇了。
Rubypython、Brython...
*我们使用的python解释器——Cpython
python环境
专门写了一篇安装文档,不会装的童鞋看过来看过来 http://www.cnblogs.com/Eva-J/articles/5452281.html
python入门
第一句python代码
创建一个hello.py文件,里面写一句话:
print ("hello,world")
python3 hello.py 执行这个文件。看看能得到什么结果?
ps:在linux系统中,执行前需给予 hello.py 执行权限,chmod 755 hello.py
/*
python代码的执行过程如下:

*/
python的解释器和.pyc文件
- python的解释器
上一步中执行 python /home/dev/hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。
如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:
#!/usr/bin/env python3 print ("hello,world")
如此一来,执行: ./hello.py 即可。
ps:在linux系统中,执行前需给予 hello.py 执行权限,chmod 755 hello.py
/*
- .pyc文件:
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
*/
注释
单行注视:# 被注释内容
多行注释:""" 被注释内容 """
初识基本数据类型
- 数字
- int(整型)
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
-
- long(长整型)
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
-
- float(浮点型)
-
- complex(复数)
- boolean
- str
字符串型。
"hello world"
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
name = "Alex" print ("i am %s " % name) #输出: i am Alex PS: 字符串是 %s;整数 %d;浮点数%f
-
- 移除空白
- 分割
- 长度
- 索引
- 切片
list 列表。
name_list = ['Alex', 'Seven', 'Eva'] 或 name_list = list(['Alex', 'Seven', 'Eva'])
基本操作:
-
- 索引
- 切片
- 追加
- 删除
- 长度
- 切片
- 循环
- 包含
- tuple 元组。
ages = (11, 22, 33, 44, 55)
或
ages = tuple((11, 22, 33, 44, 55))
-
- 索引
- 切片
- 循环
- 长度
- 包含
- dict 字典。
person = {"name": "mr.wu", 'age': 18}
或
person = dict({"name": "mr.wu", 'age': 18})
常用操作:
-
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
python的一些基础方法
-
执行脚本传入参数
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
-
- Python内部提供的模块
- 业内开源的模块
- 程序员自己开发的模块
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
#!/usr/bin/env python
import sys
print sys.argv
-
python中的输入
在Python自带的解释器中输入input()和getpass()方法。
变量
- 什么是变量?
变量就是会变化的量
- 什么地方会用到变量?
在表示中间值、获取未知值、或者简化代码的时候都可以使用
- 怎么用?
变量的声明
变量的赋值
变量的命名规则
- 变量在内存中的状态
运算
- 算数运算

- 比较运算

- 赋值运算

- 逻辑运算

- 成员运算

- 身份运算

- 位运算

- 运算符的优先级

#!/usr/bin/python a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101 print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011 print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000 print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111 print "Line 6 - Value of c is ", c
流程控制和缩进
猜价格赢奖品:
提示输入商品的价格。
如果高于当前商品的价格,打印“不正确,高了”
如果低于当前商品的价格,打印“不正确,低了”
猜对了,打印"正确"
初识文本的基本操作
- r,以只读方式打开文件
- w,打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
- a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- w+,打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
读取文件的内容:
# 一次性加载所有内容到内存 obj.read() # 一次性加载所有内容到内存,并根据行分割成字符串 obj.readlines() # 每次仅读取一行数据 for line in obj: print line
写文件的内容:
obj.write('内容')
关闭文件句柄:
obj.close()

浙公网安备 33010602011771号