【第二部分--Python之基础】01

一、初识

开发语言:
    高级语言:Python    Java    PHP        C#        Go    Ruby C++ ...         => 字节码
    低级语言:C    汇编                                                                               => 机器码


语言之间的比较:
PHP类:适用于写网页吗,局限性。
Python    Java:既可以写网页,也可以写后台功能。
    — Python 执行效率低,开发效率高。
    — Java 执行效率高,开发效率低。

Python种类:

Cpython

JPython

IronPython

JavaScriptPython

RubyPython

...

PYPY 这是用CPython开发的Python


1、Python的历史

1989年,Python之父Guido van Rossum在阿姆斯特丹为了打发圣诞节的闲暇时间,开发了一门解释型编程语言。国内社区通常将Guido van Rossum简称为“龟叔”,“龟”的发音取自Guido中 “Gui”。

2、Python的特点

Python之所以受到大家的欢迎,是因为它有很多优秀“品质”。
1 简单、易学、免费、开源:Python简单、易学。我们可以自由发布其复制版本,阅读、修改其源代码,将其(部分)用于新软件中。
2 解释型:Python是边解释边执行的,Python解释器会将源代码转换为中间字节码形式,然后将其解释为机器语言并执行。
3 可移植:Python解释器已被移植在许多平台上,Python程序无须经过修改就可以在多个平台上运行。
4 代码规范:Python所采用的强制缩进的方式,使得其代码具有极佳的可读性。
5 面向对象:与C++和Java等相比,Python以强大而简单的方式实现了面向对象编程。
6 胶水语言:标准版本的Python调用C语言,并可以借助C语言的接口驱动调用所有编程语言。
7 丰富的库:Python的标准库种类繁多,可以帮助处理各种工作,我们不需要安装就可以直接使用这些库。
8 动态类型:Python不会检查数据类型,在声明变量时不需要指定数据类型。

编写和运行Python程序主要有两种方式:
1 交互方式;
2 文件方式。

两种方式有什么区别?

交互方式指我们每写-行Python代码,就可以敲回车键来运行代码,在学习Python的基本语法并运行一些简单的程序时,这是不错的选择。

文件方式指先编写好Python代码文件(*.py),然后通过Python指令运行它,如果程序比较复杂,则一般采用文件方式。

3、Python的变量

3.1 标识符

标识符就是变量、函数、属性、类、模块等可以由程序员指定名称的代码元素。
构成标识符的字符均遵循一定的命名规则。

Python3 的字符采用双字节Unicode编码

Python中标识符的命名规则如下。
1 区分大小写:Myname与myname是两个不同的标识符。
2 首字符可以是下画线(_)或字母,但不能是数字。
3 除首字符外的其他字符必须是下画线、字母和数字
4 关键字不能作为标识符。
5 不要使用Python的内置函数作为自己的标识符。

User_Name
_sys_val

3.2 关键字

关键字是由语言本身定义好的有特殊含义的代码元素。

在Python中只有33个关键字,在这33个关键字中,只有 False、None和True的首字母大写,其他关键字全部小写。

3.3 变量

在Python中为一个变量赋值的同时就声明了该变量该变量的数据类型就是赋值数据所属的类型,该变量还可以接收其他类型的数据。

greeting = 'Hello Word'
Student_score = 7.0

我们学习Java和C等编程语言时,将变量声明为一种数据类型后,该变量就不能接收其他类型的数据了。Python却可以,这样不会为我们编程带来麻烦吗?

这种灵活性使得Python变得简单,但也给开发人员带来很多麻烦。我原本想将True赋值给X,却不小心将它赋值给y。由于Python默认所有变量都可以接收不同类型的数据,所以我不容易发现这个错误,也不容易排查,这种Bug会导致之后产生很严重的Bug。

3.4 语句

Python代码是由关键字、标识符、表达式和语句等构成的,语句是代码的重要组成部分。在Python中,一行代码表示一条语句,在一般情况下语句结束时不加分号。示例代码:

greeting = 'Hello Word'

# 语句结束时可以加分号,但不符合Python编程规范
Student_score = 7.0;    

# Python链式赋值语句可以同时给多个变量赋相同的数值
a = b = c = 10

3.5 代码注释

在使用#(井号)时,#位于注释行的开头,#后面有一个空格,接着是注释的内容。代码注释示例如下:
位于行的开头

# coding = utf-8   ## 单行注释

# 这是一个证数变量  ## 单行注释
student_score = 7.0

print(student_score) # 打印y变量  ## 在一条语句的末端注释

代码第1行# coding=utf-8的注释很特殊,它有什么意思吗?

这个注释是告诉Python解释器该文件的编码集是UTF-8,可以避免产生代码中有中文等亚洲文字时无法解释文件的问题该注释语句必须被放在文件的第1行或第2行才能有效。

它还有替代写法:# _*_coding: utf-8 _*_。

3.6 模块

在Python中一个模块就是一个文件,模块是保存代码的最小单位,在模块中可以声明变量、函数、属性和类等Python代码元素。

一个模块可以访问另外一个模块中的代码元素,但是需要导入语句的帮助,导入语句有下面三种形式。

import<模块名>:通过这种方式会导入m2模块的所有代码元素,在访问时需要加前缀“m2.”

from<模块名>import<代码元素>:通过这种方式会导入m2中的x变量,在访问时不需要加前缀“m2.”

from<模块名>import<代码元素>as<代码元素别名>:与②类似,在当前m1模块的代码元素(x变量)与要导入的m2模块的代码元素(x变量)名称有冲突时,可以给要导入的代码元素(m2中的x)一个别名x2

4、Python的数据类型

在Python中所有的数据类型都是类每个数据值都是类的“实例”。在Python中有6种主要的内置数据类型:数字、字符串、列表、元组、集合和字典列表、元组、集合和字典可以容纳多项数据,在本书中把它们统称为容器类型的数据

4.1 数字类型的数据

Python中的数字类型有4种:整数类型、浮点类型、复数类型和布尔类型。需要注意的是,布尔类型也是数字类型,它事实上是整数类型的一种。

4.1.1 整数类型

Python中的整数类型为int类,整数类型的范围可以很大,表示很大的整数,只受所在计算机硬件的限制。

4.1.2 浮点类型

浮点类型主要用来存储小数数值,Python的浮点类型为float类。Python只支持双精度浮点类型,而且是与本机相关的

4.1.3 复数类型 

整数和浮点数(小数)在数学中被统称为实数。与实数对应的是复数,复数在数学中被表示为:a+bi,其中a被称为实部,b被称为虚部,i被称为虚数单位。复数在数学、理论物理学和电气工程等方面应用广泛,例如向量就可以使用复数表示。

4.1.4 复数类型 

Python中的布尔类型为bool类,bool是int的字类,它只有两个值:True和False。

Python中的数据类型转换很灵活任何类型的数据都可以通过bool(函数转换为布尔值,那些被认为"没有的""空的"值会被转换为False,反之被转换为True。

4.1.5 数字类型的相互转换 

很多数字类型的数据都可以被转换为布尔值,Python中的很多数据类型都可以相互转换,但是具体情况比较复杂,本章重点介绍数字类型之间的相互转换。在Python的数字类型中,除复数外,其他三种数字类型如整数、浮点和布尔都可以相互转换,分为隐式类型的转换显式类型的转换

4.1.5.1 隐式类型的转换

数字之间可以进行数学计算,在进行数学计算时若数字类型不同,则会发生隐式类型的转换

 

 

4.1.5.2 显式类型的转换

表达式1.0 +1中的整数1被隐式转换为浮点数1.0,但在很多情况下我都希望浮点数1.0被转换为整数1,该怎么办?在这种情况下就需要使用转换函数进行显式转换了。

除复数外,三种数字类型如整数、浮点和布尔都有自己的转换函数,分别是int()、foat()和bool()函数

4.2 容器类型的数据

Python内置的数据类型如序列(列表、元组等)、集合和字典等可以容纳多项数据,我们称它们为容器类型的数据

4.2.1 序列

序列(sequence)是一种可迭代的元素有序的容器类型的数据。

序列包括列表(list)、字符串(str)、元组(tuple)和字节序列(bytes)等。

4.2.1.1 序列的索引操作

序列示例:Hello字符串。

 

序列中的元素都是有序的,每一个元素都带有序号,这个序号叫作索引。索引有正值索引负值索引之分。

我们是通过下标运算符访问序列中的元素的,下标运算符是跟在容器数据后的一对中括号([]),中括号带有参数,对于序列类型的数据,这个参数就是元素的索引序号。

4.2.1.2 加和乘操作

加(+)和乘(*)运算符也可以用于序列中的元素操作。加(+)运算符可以将两个序列连接起来,乘(*)运算符可以将两个序列重复多次

 

4.2.1.3 切片操作

序列的切片(Slicing)就是从序列中切分出小的子序列。 

切片运算符的语法形式为[start:end:step]。其中,start是开始索引,end是结束索引,step是步长(切片时获取的元素的间隔,可以为正整数,也可以为负整数)。

注意:切下的小切片包括start位置的元素,但不包括end位置的元素,start和end都可以省略。

下面对字符串变量a进行切片操作[1:3],开始索引为1,结束索引为3,省略步长(默认值为1)。

 

下面对字符串变量a进行切片操作[0:3:2],开始索引为0,结束索引为3,步长为2。

 

4.2.1.4 成员测试

成员测试运算符有两个:in和not in,in用于测试是否包含某一个元素,not in用于测试是否不包含某一个元素。 

4.2.2  列表

列表(list)是一种可变序列类型,我们可以追加、插入、删除和替换列表中的元素

4.2.2.1 创建列表

创建列表有两种方法。
1 list(iterable)函数:参数iterable是可迭代对象(字符串、列表、元组、集合和字典等)。
2 [元素1,元素2,元素3,⋯]:指定具体的列表元素,元素之间以逗号分隔,列表元素需要使用中括号括起来。

 

 4.2.2.2 追加元素

列表是可变的序列对象,列表可以追加元素
1 在列表中追加单个元素时,可以使用列表的append(x)方法
2 在列表中追加多个元素时,可以使用加(+)运算符或列表的extend(t)方法。

 

 本节的append(x)被称为方法list(iterable)被称为函数,在Puthon中方法和函数是有区别的。方法隶属于类,通过类或对象调用方法,例如在list.append(x)中,list是列表对象;函数不隶属于任何类,直接调用即可,例如list(iterable)。

4.2.2.3 插入元素

想向列表中插入元素时,可以使用列表的list.insert(i,x)方法,其中,i指定索引位置,x是要插入的元素。

4.2.2.4 替换元素

想替换列表中的元素时,将列表下标索引元素放在赋值符号(=)的左边,进行赋值即可

4.2.2.5 删除元素

想在列表中删除元素时,可使用列表的list.remove(x)方法,如果找到匹配的元素x,则删除该元素,如果找到多个匹配的元素,则只删除第一个匹配的元素。

4.2.3 元组

元组(tuple)是一种不可变序列类型。

4.2.3.1 创建元组

创建元组时有两种方法。
1 tuple(iterable)函数参数iterable是可迭代对象(字符串、列表、元组、集合和字典等)。

2 (元素1,元素2,元素3,⋯):指定具体的元组元素,元素之间以逗号分隔。对于元组元素,可以使用小括号括起来,也可以省略小括号。

4.2.3.2 元组拆包

创建元组,并将多个数据放到元组中,这个过程被称为元组打包。与元组打包相反的操作是拆包,就是将元组中的元素取出,分别赋值给不同的变量

将元组(102,'张三')拆包到变量s_id和s_name

4.2.4 集合

集合(set)是一种可迭代的、无序的、不能包含重复元素的容器类型的数据。

4.2.4.1 创建集合

序列中的元素是有序的;集合中的元素是无序的,但元素不能重复。

我们可以通过以下两种方式创建集合。
1 set(iterable)函数:参数iterable是可迭代对象(字符串、列表、元组、集合和字典等)。
2 {元素1,元素2,元素3,⋯}:指定具体的集合元素,元素之间以逗号分隔。对于集合元素,需要使用大括号括起来。

4.2.4.2 修改集合

修改集合类似于修改列表,可以向其中插入和删除元素。修改可变集合有如右所示的常用方法。
add(elem)添加元素,如果元素已经存在,则不能添加,不会抛出错误。

remove(elem)删除元素,如果元素不存在,则抛出错误。

clear()清除集合

4.2.5 字典

字典(dict)是可迭代的、通过键(key)来访问元素的可变的容器类型的数据。字典由两部分视图构成:键视图和值视图键视图不能包含重复的元素,值视图能。在键视图中,键和值是成对出现的。

4.2.5.1 创建字典

我们可以通过以下两种方法创建字典。
1 dict()函数

2 {key1:value1,key2:value2,...,key_n:value_n}:指定具体的字典键值对,键值对之间以逗号分隔,最后用大括号括起来。

4.2.5.2 修改字典

字典可以被修改,但都是针对键和值同时操作的,对字典的修改包括添加、替换和删除

4.2.5.3 访问字典视图

我们可以通过字典中的三种方法访问字典视图。
我们在Python Shell中运行代码,看看运行结果怎样。
items():返回字典的所有键值对视图。

keys():返回字典键视图。

values():返回字典值视图。

第2行:返回字典的所有键值对视图dict_items
第4行:dict_items可以使用list()函数返回键值对列表
第6行:返回字典键视图dict_keys
第8行:dict_keys可以使用list()函数返回键列表
第10行:返回字典值视图dict_values
第12行:dict_values可以使用list()函数返回值列表

本章讲了序列(列表和元组)、集合和字典这几种容器类型的数据,其中列表和元组属于序列。这几种容器类型都是可选代的,最大的特点如下。
序列元素是有序的。其中列表是可变的元组是不可变的

集合元素是无序的,且不能重复

字典通过键来访问元素,由键视图和值视图构成,键视图不能包含重复的元素

  • 34
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值