python介绍
python是一种解释型的,面对对象的。带有动态语义的高级程序设计语言
python简史
1989年,Guido(龟叔)为ABC 语言写的一个插件。因Monty Python的喜剧团体的原因,故给这个语言起名为python。linux也是
1989年诞生的,1991年正式发布linux1.0内核;
1990年, 发布python的第一个版本;
2001年发布python2.0版本;
2010年获年度Tiobe编程语言大奖,TIOBE网站;
TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜 索 引擎 (诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。
2013年发布python3.x版本;
python的优点
创始人评价:简单、优雅、明确
简单体现在如果你的母语是英语,写python脚本就像写文章,很简单;
优雅体现在python的格式,比如缩进来确定代码块,可避免编程人员进行复杂的嵌套;
明确体现在解决问题的方法只有一种最优选项,而perl语言是每个问题有很多最优解,但不利于团队协作;
有强大的第三方库模块,需要实现一复杂功能,只需要调用现有的库,可快速实现功能。20多年的发展,各种库都已经完
备,比如:邮件库,爬虫库......
可跨平台移植,java有Java的虚拟机,python同样;
是一种面向对象的语言;
是一种可扩展的语言(与C,C++,Java结合)
python的缺点
代码执行速度慢,相比C语言,不过现在python的异步并发框架导致执行速度慢;
python是开源的编程语言,代码不能加密,当然有相应的工具可以将python代码转换为exe的二进制可执行码,但是反解码也
很容易;
第一个python程序
输出中文
ASCII:美国人发明了计算机,用二进制存储数据,英文字母加各个字符一共128个,每8位存储一个字符,2^8=256,可通过 ord() 函数去查看字符对应的ASCII码。
Unicode:但是ASCII码忽略了中文,韩文,日文等其他国家的文字,这个时候256个字符的对应关系明显是不够用的,这时候就用两个字节对应一个文字,2**16=65536.
UTF-8:英文字符明明可以通过一个字节存储,Unicode却需要2个字节来存储,对于存储比较小的计算机来说,是浪费很多不必要占用的空间,这个时候就出现utf-8。那么什么是utf-8呢?简单来说就是可变长度编码格式,英文字符用ASCII码来存,而中文呢,就用utf-8来存,这个时候中文就不是两个字节存储,而是三个字节来存。
ipython
pycharm
python编程风格
python简洁明了的编程格式,如果不按照python既定的格式进行编写程序,直接报错,所以说,刚开始编写python代码会常常报错。这里我就用C语言和python语言做简单的比较。
C语言显示 hello world
#include <stdio.h>
void hello()
{
printf("hello!\n");
}
void main()
{
hello();
}
从上面的代码我们会发现,C代码块是通过花括号 {} 做以区别。
python显示 hello world
#!/usr/bin/env python
def hello():
print "hello world"
def main():
hello()
main()
根据上面的两个不同编程语言实现同一功能的分析,总结python编程初级要掌握的编程风格如下:
不要在行尾加分号;
每行不超过80个字符;
Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。
增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。
输入与输出
输出: 告诉用户程序执行的结果
输入: 告诉计算机程序所需的信息
变量
变量是内存中的一块区域。
变量的命名: 变量名由字母,数字,下划线组成。
>>> a=1
>>> print a
1
>>> a_1 = 111
>>> _a = 222
>>> print _a
222
>>> 1a = 111
File "<stdin>", line 1
1a = 111
^
SyntaxError: invalid syntax //指语法错误,无效的语法
>>> a = 5
>>> b = 3>>> print a + b
8
>>> print a + b +c
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'c' is not defined //名称错误
变量的特性:
实际存储在内存上;
变量名最好见名知意;
变量可重新赋值;
>>> number1 = 1
>>> number2 = 2
>>> number1 + number2
3
python中地址变量与c语言刚好相反,一条数据包含包含多个标签;
>>> a = 1
>>> b = 1
>>> id(a)
10812520
>>> id(b)
10812520
运算符与表达式
赋值运算符:=, +=, -=, /=, *=, %=
算术运算符:+, -, , /, //, %, *
基本数据类型
数字
整型
长整型
强制定义为长整型
浮点数:表示小数
复数类型
字符串
字符串的定义
# 字符串定义的第一种方式:
>>> str1 = 'our company is westos'
# 字符串定义的第二种方式:
>>> str2 = "our company is westos"
# 字符串定义的第三种方式:
>>> str3 = """our company is westos"""
>>> type(str1)
<type 'str'>
>>> type(str2)
<type 'str'>
>>> type(str3)
<type 'str'>
>>> say = 'let\'s go'>>> say
"let's go"
>>> say = "let's go "
>>> say
"let's go "
转义符号
>>> mail = "tom: hello i am westos "
>>> print mail
tom: hello i am westos
>>> mail = "tom:\n hello\n i am westos "
>>> print mail
tom:
hello
i am westos
三重引号
块注释
函数的doc文档
字符串格式化
>>> mail = """tom:
... i am jack
... good luck
... """
>>> print mail
tom:
i am jack
good luck
>>> mail
'tom:\n\ti am jack\n\tgood luck\n'
字符串索引
字符串切片