一、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=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有以下几个特点:

  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])
>>>s
set([1,2,3])

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

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

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

  1. 廖雪峰git入门教程——学习笔记

    https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 Q1:什么是GIT? A1:分布 ...

  2. mysql 廖雪峰_廖雪峰大佬SQL教程学习笔记

    1,SQL(Structured Query Language),就是访问和处理(操作)关系数据库的计算机标准语言.SQL语句既可以查询数据库中的数据,也可以添加,更新和删除数据库中的数据,还可以对数 ...

  3. 《python(廖雪峰课程)》学习笔记

    <python(廖雪峰课程)>学习笔记(个人检索) 1. 第一个python程序 input & output print输出字符串可以用""or'' prin ...

  4. 《流畅的python》学习笔记之python是什么类型的语言?

    讨论类型时,最好考虑两条不同的坐标线! 强类型和弱类型 如果一门语言很少隐式转换类型,说明它是强类型语言.如果经常这么做,说明它是弱类型语言.其中,java,c++和python是强类型语言,php, ...

  5. 廖雪峰的GIT教程-读书笔记

    文章目录 廖雪峰的GIT教程 什么是GIT 集中式vs分布式版本控制系统 分支管理 创建版本库 GIT的版本回退 工作区和暂存区 工作区(Working Directory) 版本库(Reposito ...

  6. Python 3 学习(一)—— 基础:廖雪峰 Python 教程学习笔记

    文章目录 Python教程 值类型和引用类型 列表和字典的基本操作 列表 元组 字典 Set 函数 内置函数 定义函数 空函数 参数检查 定义默认参数要牢记一点:默认参数必须指向不变对象! Pytho ...

  7. 简明 Python 教程学习笔记_2_函数

    1. Python 内建函数 Python 内建函数:https://docs.python.org/zh-cn/3.9/library/functions.html#classmethod Pyth ...

  8. 简明Python教程学习笔记_1_基本

    参考:http://www.kuqin.com/abyteofpython_cn/index.html Learn Python in Y minutes:http://www.jianshu.com ...

  9. 简明Python教程学习笔记_6_面向对象编程

    面向对象编程:https://www.liaoxuefeng.com/wiki/897692888725344/923030496738368 面向对象高级编程:https://www.liaoxue ...

最新文章

  1. angular-fullstack test
  2. PHP连接数据库的三种方式
  3. MongoDB3.6.3 windows安装配置、启动
  4. android daemon 程序,(转)Android App Daemon
  5. .NET解决[Serializable] Attribute引发的Json序列化k_BackingField
  6. Python2/3共存,pip2/3共存
  7. 9.14-9.18随笔之二
  8. 使用python3编写冒险岛079登录器
  9. 系泊系统悬链线matlab,基 于 悬 链 线 理 论 的 系 泊 系 统 势 能
  10. Java解析魔兽争霸3录像W3G文件(四):解析游戏进行时的信息
  11. 科普:机器视觉技术原理解析及应用领域
  12. pdf 分形 张济忠_分形理论及其研究方法.pdf
  13. Solidworks工程图模板之自定义文件属性与零件图关联
  14. 微信小程序+PHP实现登录注册(手把手教程)
  15. Vue上传图片裁剪预览插件vue-img-cutter的使用
  16. ubuntu无法清空回收站解决办法
  17. C++从txt文本中输入和读取字符串
  18. libmudbus库使用的一二事
  19. RAS - Reliability, Availability and Serviceability
  20. 74hc165C语言程序,74hc165使用方法(74hc165功能_内部结构图_时序图)

热门文章

  1. 一篇就够 编程常用英语单词 程序员都要知道单词
  2. centos8服务器安装nginx
  3. 如何制作订单出货标签
  4. “10亿赌约”董明珠赢了 格力电器2018年总收入超2000亿
  5. php变量结构体的深入理解,第一节 变量的结构和类型
  6. 2016ATF阿里巴巴技术论坛
  7. 《智能设备艺术、科技、文化作品实例开发与设计》android开发系列介绍---1.2琴类作品:吉他
  8. 【app扫码登录】Java app扫码登录功能实现
  9. 学习是我快乐 第十天
  10. oracle ocp认证概述