在说之前给大家一个脑图
Python的诞生
1989年,为了打发圣诞节假期,Guido(创始人)开始写Python语言的编译/解释器。python来自Guido所挚爱的电视剧Monty Python’s Flying Circus (BBC1960-1970年代播放的室内情景幽默剧,以当时的英国生活为素材)。他希望这个新的叫做Python的语言,能实现他的理念(一种C和shell之间,功能全面,易学易用,可拓展的语言)。Guido作为一个语言设计爱好者,已经有过设计语言的(不很成功)的尝试。这一次,也不过是一次纯粹的hacking行为。
1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用c语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
2003年2.x系列到最新的2.7版本,将不会再出2.8了,这是2.x里面最后一个版本。
python的发展史
- 1989年,Guido(龟叔),为ABC语言写插件,Monty Python喜剧团;
- 1990年,发布python第一个版本;
- 2001年,2.x; (python2.7 —-> python2.8<不会存在>);
- 2013年,python3.0
编程语言的简单分类:
C,Java,C++, C#, shell, ruby, php, JavaScript, Matlab
- 面向对象语言
- 面向过程语言
面向函数编程
编译型语言:Windows用C写了一个QQ软件,并不能在Linux上执行,也不能在IOS上运行;
- 解释型语言:可以跨平台,你用python写一个APP,只需要写一份,在所有的平台上可以运行;
python的优缺点
优点:
- 创始人说的: 简单,优雅,明确
- 他强制缩进,这些与语法规定Python更容易读
- Python从一开始就特别注意可拓展行
- Python崇尚优美、清晰、简单、是一个广泛使用的语言
- Python可以跨平台使用,比如他可以在不同的系统上使用。
缺点:
- 速度慢
运行速度,有速度要求的话,用C++改写关键部分不过对于用户而言,机器上运行速度是可以忽略的。因为用户根本感觉不出来这种速度的差异。
既是优点也是缺点,python的开源性是的Python语言不能加密,
构架选择太多(没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中 - 代码不能加密
Linux中Python的解释器
# 可移植性的对比,如果你的代码移植到的机器,python并未安装在/usr/bin/python这里,就使用第二种;
#!/usr/bin/python
#!/usr/bin/env python
中文
在Python中,他需要通过模块来支持中文,当你使用到中文的时候,你需要增加下面的任意一种。
#coding:utf-8
#coding=utf-8
#encoding:utf-8
#encoding=utf-8
#encoding:-*- utf-8 -*-
编码
编码格式:
ASCII:美国人发明了计算机,1个字节(8位)去存储一个英文字符,2^8=256,所以他的范围只有英文字母、数字和一些基本符号。
Unicode:2个字节(16位)去存储一个字符,2^16,65536;
# GB2312:
utf-8:在编程过程中,英文多,中文少。如果是英文字符,就用一个字节去存储;如果是中文用3个字节去存储;
python的IDE工具
- sublime
- eclipse
- pycharm
快捷键和技巧
- ctrl+alt+s:设置
- alt+insert:新建(文件,目录,包)
- ctrl + s:保存
- Delete:删除(文件,目录,包)
- ctrl + /: 快速注释(或取消)一行或多行
- shift+alt+N:
- ctrl+d: 快速复制一行
- shift+delete:快速删除一行
输入函数
- raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)
- input() ,能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型,input() 可接受合法的 python 表达式
引号的作用
- 双引号,它所表示的字符串通常要写成一行
- 三个双引号,他可以可以在字符串中增加注释,还可以以固定的的格式输出字符串
练习
- 用户登陆, 假设系统中的用户名”root”,密码为”westos” 如果用户输入用户名和密码均正确显示”login ok , 如果用户名错误,显示”user is not exist”,如果密码错误,显示”password is no ok”.只有三次登陆机会,超过三次,显示”count is bigger than 3”
#!/usr/bin/python
#coding = utf-8
for i in range (1,4) :
username = raw_input ("input username: ")
password = raw_input ("input password: ")
if username == "root" :
if password == "westos" :
print "login ok"
exit()
else:
print "password is not ok"
else:
print "username is no ok"
- 输出九九乘法表
#!/usr/bin/python
#coding = utf-8
for i in range(1, 10):
for j in range(1, i+1):
print "{}*{}={}\t".format(i,j,i*j),
print()