廖雪峰的Python教程学习笔记一Python简介和基础语法

来源:互联网 发布:暂七师军乐队 知乎 编辑:程序博客网 时间:2024/04/26 14:11

一、Python简介

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个面向对象的高级编程语言。与其它面向对象语言(如C++、java)不同的是,Python是一种动态语言(C++/java则是静态语言),在OOP(面向对象编程)机制上与静态语言有所差别,最关键的地方在于两点:

  1. 理解Python是如何利用查找树的机制来模仿类及实例之间的关系(Python的属性获取是按照从下到上的顺序来查找的);
  2. 理解动态语言是可以动态设置属性的。

1 Python的优点:

  1. 简单易懂,容易入门。
  2. Python是可扩展的,提供了非常完善的基础代码库和大量的第三方库。

2 Python的缺点

  1. 运行速度慢,和C程序相比非常慢,因为Python是解释型语言。
  2. 代码不能加密

3 Python应用

那Python适合开发哪些类型的应用呢?
首选是网络应用,包括网站、后台服务等等;
其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;
另外就是把其他语言开发的程序再包装起来,方便使用。

二、Python基础语法

1 输入和输出

在交互式环境的提示符>>>下,直接输入代码,按回车,就可以立刻得到代码执行结果。另外,Python的注释以# 字符起始,直至实际的行尾。

1.1 输出

向屏幕输出:print +字符串
e.g. print 'hello world'

1.2 输入

接收键盘输入:raw_input()
e.g. name=raw_input() #name为保存输入的变量名,()中可以写一些提示字符串

2 数据类型和变量

在Python中,能够直接处理的数据类型有以下几种:

  • 整数:Python可以处理任意大小的整数。
  • 浮点数(即小数):注意科学计数法表示,把10用e代替。
  • 字符串:字符串是以’x’或”x”括起来的任意文本,比如'abc'"xyz"等等。另外,注意转义字符\ 和换行符\n (也可用从属提示符... 替代)的使用。
  • 布尔值:直接用TrueFalse 表示布尔值,布尔值可以用andornot 运算。
  • 空值:用None 表示。
  • 变量:变量不仅可以是数字,还可以是任意数据类型,变量名必须是大小写英文、数字和_的组合,且不能用数字开头。
  • 常量:在Python中,通常用全部大写的变量名表示常量,如PI=3.141592654

3 字符串和编码

3.1 字符编码

1.ASCII编码:是最早的编码标准,由美国制定,用1个字节(8位)编码字符(大小写英文字母、数字和一些符号)。
2.Unicode编码:为统一各国语言编码而制定的,用2个字节(16位)编码字符,原来用ASCII编码的字符直接在高8位补0。
3.UTF-8编码:为便于存储和传输(节约精神)而发展出的一种编码方式,是UTF标准的一种,UTF-8每次按8个位传输数据,是一种可变长编码。它把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节(ASCII可看成是UTF-8编码的一部分),汉字通常是3个字节。
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。下面是一个简单的用电脑记事本编辑的图示:
这里写图片描述

3.2 Python字符串

Python中以Unicode表示的字符串用u'...' 表示,如print u'中文'

Python中字符的Uniconde编码和UTF-8编码转换的方法:
- 把u'xxx' 转换为UTF-8编码的'xxx'encode('utf-8') 方法。
- 反过来,把UTF-8编码的字符串'xxx'转换为 Unicode字符串u'xxx'decode('utf-8') 方法。

4 使用list和tuple

list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。

4.1 list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

  • 定义list变量用中括号[]
    e.g.list=['Mike','Bob','Tom']
  • 索引从0开始,访问最后一个元素也可以用-1做索引
  • 往list中追加元素到末尾:list.append(x)
    e.g.list.append('Jan')
  • 把元素插入到指定位置(索引):list.insert(i,x)
    e.g. list.insert(1,'Jack')
  • 删除list末尾的元素,用pop() 方法
    e.g. list.pop()

4.2 tuple

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,它是不变的有序列表。所谓的“不变”是指tuple的每个元素,指向永远不变。它用小括号定义,如tuple=('Mike','Bob','Tom')

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

5 条件判断和循环

5.1 条件判断

通用写法如下,主要每条判断语句后面要加:elifelse if 的缩写。

if <条件判断1>:    <执行1>elif <条件判断2>:    <执行2>elif <条件判断3>:    <执行3>else:    <执行4>

5.2 循环

Python的循环有两种,一种是for…in循环,依次把list或tuple中的每个元素迭代出来,如:

names=['Mike','Bob','Tom']for name in names:    print name

第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环,如:

sum=0n=99while n>0:    sum=sum+n    n=n-2print sum

6 使用dict和set

使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串。

6.1 dict

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。dict定义用大括号,如:

>>>d={'Mike':95,'Bob':75,'Tom':85}>>>d['Mike']95

要删除一个key,用pop(key) 方法,对应的value也会从dict中删除。
和list比较,dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而增加;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。另外,需要注意的一点是dict的key必须是不可变对象

6.2 set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:

>>>s=set([1,2,3])>>>sset([1,2,3])

通过add(key) 方法可以添加元素到set中;通过remove(key) 方法可以删除元素。

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作。

0 0
原创粉丝点击