廖雪峰的Python教程学习笔记一Python简介和基础语法
一、Python简介
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个面向对象的高级编程语言。与其它面向对象语言(如C++、java)不同的是,Python是一种动态语言(C++/java则是静态语言),在OOP(面向对象编程)机制上与静态语言有所差别,最关键的地方在于两点:
- 理解Python是如何利用查找树的机制来模仿类及实例之间的关系(Python的属性获取是按照从下到上的顺序来查找的);
- 理解动态语言是可以动态设置属性的。
1 Python的优点:
- 简单易懂,容易入门。
- Python是可扩展的,提供了非常完善的基础代码库和大量的第三方库。
2 Python的缺点
- 运行速度慢,和C程序相比非常慢,因为Python是解释型语言。
- 代码不能加密
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
(也可用从属提示符...
替代)的使用。 - 布尔值:直接用
True
和False
表示布尔值,布尔值可以用and
、or
和not
运算。 - 空值:用
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 条件判断
通用写法如下,主要每条判断语句后面要加:
,elif
是else 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=0
n=99
while n>0:sum=sum+nn=n-2
print 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有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而增加;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。另外,需要注意的一点是dict的key必须是不可变对象。
6.2 set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:
>>>s=set([1,2,3])
>>>s
set([1,2,3])
通过add(key)
方法可以添加元素到set中;通过remove(key)
方法可以删除元素。
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作。
廖雪峰的Python教程学习笔记一Python简介和基础语法相关推荐
- 廖雪峰git入门教程——学习笔记
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 Q1:什么是GIT? A1:分布 ...
- mysql 廖雪峰_廖雪峰大佬SQL教程学习笔记
1,SQL(Structured Query Language),就是访问和处理(操作)关系数据库的计算机标准语言.SQL语句既可以查询数据库中的数据,也可以添加,更新和删除数据库中的数据,还可以对数 ...
- 《python(廖雪峰课程)》学习笔记
<python(廖雪峰课程)>学习笔记(个人检索) 1. 第一个python程序 input & output print输出字符串可以用""or'' prin ...
- 《流畅的python》学习笔记之python是什么类型的语言?
讨论类型时,最好考虑两条不同的坐标线! 强类型和弱类型 如果一门语言很少隐式转换类型,说明它是强类型语言.如果经常这么做,说明它是弱类型语言.其中,java,c++和python是强类型语言,php, ...
- 廖雪峰的GIT教程-读书笔记
文章目录 廖雪峰的GIT教程 什么是GIT 集中式vs分布式版本控制系统 分支管理 创建版本库 GIT的版本回退 工作区和暂存区 工作区(Working Directory) 版本库(Reposito ...
- Python 3 学习(一)—— 基础:廖雪峰 Python 教程学习笔记
文章目录 Python教程 值类型和引用类型 列表和字典的基本操作 列表 元组 字典 Set 函数 内置函数 定义函数 空函数 参数检查 定义默认参数要牢记一点:默认参数必须指向不变对象! Pytho ...
- 简明 Python 教程学习笔记_2_函数
1. Python 内建函数 Python 内建函数:https://docs.python.org/zh-cn/3.9/library/functions.html#classmethod Pyth ...
- 简明Python教程学习笔记_1_基本
参考:http://www.kuqin.com/abyteofpython_cn/index.html Learn Python in Y minutes:http://www.jianshu.com ...
- 简明Python教程学习笔记_6_面向对象编程
面向对象编程:https://www.liaoxuefeng.com/wiki/897692888725344/923030496738368 面向对象高级编程:https://www.liaoxue ...
最新文章
- angular-fullstack test
- PHP连接数据库的三种方式
- MongoDB3.6.3 windows安装配置、启动
- android daemon 程序,(转)Android App Daemon
- .NET解决[Serializable] Attribute引发的Json序列化k_BackingField
- Python2/3共存,pip2/3共存
- 9.14-9.18随笔之二
- 使用python3编写冒险岛079登录器
- 系泊系统悬链线matlab,基 于 悬 链 线 理 论 的 系 泊 系 统 势 能
- Java解析魔兽争霸3录像W3G文件(四):解析游戏进行时的信息
- 科普:机器视觉技术原理解析及应用领域
- pdf 分形 张济忠_分形理论及其研究方法.pdf
- Solidworks工程图模板之自定义文件属性与零件图关联
- 微信小程序+PHP实现登录注册(手把手教程)
- Vue上传图片裁剪预览插件vue-img-cutter的使用
- ubuntu无法清空回收站解决办法
- C++从txt文本中输入和读取字符串
- libmudbus库使用的一二事
- RAS - Reliability, Availability and Serviceability
- 74hc165C语言程序,74hc165使用方法(74hc165功能_内部结构图_时序图)