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程序

20170629083029780


输出中文

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来存,这个时候中文就不是两个字节存储,而是三个字节来存。

20170629083355504



ipython

20170629083502039



pycharm

20170629083817954




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规则),而非使用花括号或者某种关键字。
增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。


输入与输出
输出: 告诉用户程序执行的结果
输入: 告诉计算机程序所需的信息

20170629084257378


变量
变量是内存中的一块区域。
变量的命名: 变量名由字母,数字,下划线组成。
>>> 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




运算符与表达式
赋值运算符:=, +=, -=, /=, *=, %=
算术运算符:+, -, , /, //, %, *

20170629084632891




基本数据类型

数字

  整型

20170629084852669


  长整型

20170629085009534

强制定义为长整型

20170629085106666

浮点数:表示小数

20170629085201681


复数类型

20170629085250286


字符串

  字符串的定义

# 字符串定义的第一种方式:
>>> 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'


字符串索引

20170629085520508


字符串切片

20170629085714685