python时间比较方法_python比较时间

前言

Python是一门强大的解释型、面向对象的高级程序设计语言,它优雅、简单、可移植、易扩展,可用于桌面应用、系统编程、数据库编程、网络编程、web开发、图像处理、人工智能、数学应用、文本处理等等。

这个学习笔记比较基础但比较系统,适合Python的初学者用以快速入门。它讲解了Python 3.x的基本语法和高级特性,从基本数据类型、运算符、流程控制、函数、文件IO到模块、异常处理和面向对象,并且附上了很多经过测试的代码帮助读者去理解。

相信看完这个学习笔记,你会对Python有一个整体的概念,这会激起你对这门语言的兴趣,那时候你可以进一步去深入了解Python标准库,然后可以找几个Python小项目练练手。

HelloWorld

对于新手一般会遇到一个问题:学习Python 2还是Python 3呢? 对于我个人而言,我开始学习的时候是个完全的新手,没有历史包袱,所以我直接学习Python 3。

我相信在未来几年,Python 3会逐步取代Python 2成为主流。 Python是一门解释型、面向对象、动态数据类型的高级程序设计语言,更多的介绍看《官方文档》。Python让程序更加的紧凑、可读性更强,用 Python 写的程序通常比同样的C、C++或Java程序要短得多,这是因为以下几个原因:

高级数据结构使你能够在单条的语句中表达复杂的操作。

代码块的组织依赖于缩进而不是开始/结束符,例如{ }。

参数或变量不需要声明。

第一个HelloWorld程序

交互模式 交互模式即命令行模式,Windows中你下载的Python会有一个IDLE进去就是Python交互模式,我们可以在交互模式下面,写一些简单的东西,比如if语句

PS:在Python 3.x中,print是一个函数,所以必须使用括号输出,但是Python 2.x中就没有,这也是区分Python版本的一个重要指标。

脚本文件

我们也可以将代码写到一个.py文件中,然后用python命令执行该脚本文件

基础语法

编码

默认情况下,Python 3源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。当然你也可以为源码文件指定不同的编码

标识符

在Python 3中,非-ASCII 标识符也是允许的了。但最好还是只使用英文、数字、下划线作为标识符,并且不能以数字开头。(区分大小写)

python保留字

保留字即关键字,我们不能把它们用作任何标识符名称。Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字:

注释 Python中单行注释以#开头,多行注释用三个单引号(’’’)或者三个双引号(”””)将注释括起来。

行与缩进 python最具特色的就是使用缩进来表示代码块。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

附Linux教程:

在现在的Linux系统中都会内置Python解释器,我的系统中就同时装了python2和python3。在终端输入$python会使用python 2.x,输入$python3会使用python 3.x。但是现在我想修改一下,让$python命令默认使用python 3.x,$python2命令使用python 2.x。这个要怎么做?那我们就需要修改软链接,软链接是一种特殊的文件,文件的内容是指向另一个文件的位置或路径。它不占用磁盘空间,类似于Windows操作系统中的快捷方式

但是修改了软链接以后的一个伴随的问题是:有些用python写的命令不能执行了,因为python2和python3有很多语法是不兼容。比如yum,它是python写的,但是因为python软链接被修改为指向python 3.x解释器,所以执行yum命令时会报语法错误。 我们可以通过修改yum文件来修复这个问题,既然之前我们已经创建了python2软链接指向python 2.x解释器,所以我们只要修改yum文件的开头就行了,这样在执行yum命令时就会使用python 2.x解释器而不是python 3.x的解释器了。

基本数据类型

Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的“类型”是变量所指的内存中对象的类型。Python 3中有六个标准的数据类型:

Numbers(数字)

String(字符串)

List(列表)

Tuple(元组)

Sets(集合)

Dictionaries(字典)

Numbers

Python 3支持int、float、bool、complex(复数)。数值类型的赋值和计算都是很直观的,就像大多数语言一样。内置的type()函数可以用来查询变量所指的对象类型。

要点:

1、Python可以同时为多个变量赋值,如a, b = 1, 2。

2、一个变量可以通过赋值指向不同类型的对象。

3、数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符。

4、在混合计算时,Pyhton会把整型转换成为浮点数

Strings

Python中的字符串str用单引号(‘ ‘)或双引号(“ “)括起来,同时使用反斜杠()转义特殊字符。

如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串:

字符串可以使用 + 运算符串连接在一起,或者用 * 运算符重复:

还可以对字符串进行切片,获取一段子串。

要点:

1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。

2、字符串可以用+运算符连接在一起,用*运算符重复。

3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。

4、Python中的字符串不能改变。

List

List(列表) 是 Python 中使用最频繁的数据类型。列表是写在方括号之间、用逗号分隔开的元素列表。列表中元素的类型可以不相同:

列表还支持串联操作,使用+操作符

与Python字符串不一样的是,列表中的元素是可以改变的:

List(列表)

内置了有很多方法,例如append()、pop()等等。

要点:

1、List写在方括号之间,元素用逗号隔开。

2、和字符串一样,list可以被索引和切片。

3、List可以使用+操作符进行拼接。

4、List中的元素是可以改变的。

Tuple

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号里,元素之间用逗号隔开。元组中的元素类型也可以不相同:

元组与字符串类似,可以被索引且下标索引从0开始,也可以进行截取/切片。其实,可以把字符串看作一种特殊的元组。

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含0个或1个元素的tuple是个特殊的问题,所以有一些额外的语法规则:

string、list和tuple都属于sequence(序列)。

要点:

1、与字符串一样,元组的元素不能修改。

2、元组也可以被索引和切片,方法一样。

3、注意构造包含0或1个元素的元组的特殊语法规则。

4、元组也可以使用+操作符进行拼接。

Sets

集合(set)是一个无序不重复元素的集。基本功能是进行成员关系测试和消除重复元素。可以使用大括号 或者 set()函数创建set集合,注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典。

要点:

1、set集合中的元素不重复,重复了它会自动去掉。

2、set集合可以用大括号或者set()函数创建,但空集合必须使用set()函数创建。

3、set集合可以用来进行成员测试、消除重复元素。

Dictionary

字典(dictionary)是Python中另一个非常有用的内置数据类型。字典是一种映射类型(mappingtype),它是一个无序的键 : 值对集合。关键字必须使用不可变类型,也就是说list和包含可变类型的tuple不能做关键字。在同一个字典中,关键字还必须互不相同。

构造函数 dict() 直接从键值对sequence中构建字典,当然也可以进行推导,如下:

另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。

要点:

1、字典是一种映射类型,它的元素是键值对。

2、字典的关键字必须为不可变类型,且不能重复。

3、创建空字典使用{ }。

运算符

Python中的运算符大部分与C语言的类似,但也有很多不同的地方。

一、算术运算符

注意:

1、双斜杠 // 除法总是向下取整。

2、 从符点数到整数的转换可能会舍入也可能截断,建议使用math.floor()和math.ceil()明确定义的转换。

3.、Python定义pow(0, 0)和0 ** 0等于1。

二、比较运算符

注意:

1、八个比较运算符优先级相同。

2、Python允许x

3、复数不能进行大小比较,只能比较是否相等。

三、逻辑运算符

注意:

1、or 是个短路运算符,它只有在第一个运算数为False时才会计算第二个运算数的值。

2、and 也是个短路运算符,它只有在第一个运算数为True时才会计算第二个运算数的值。

3、not 的优先级比其他类型的运算符低,所以not a == b相当于not (a == b),而 a == not b是错误的。

四、赋值运算符

复合赋值运算符与算术运算符是一一对应的:

五、成员运算符

Python提供了成员运算符,测试一个元素是否在一个序列(Sequence)中。

条件与循环控制

Python的流程控制语句包括:if条件语句、while循环语句、for循环语句、range函数以及break、 continue、pass控制语句。这些语句在Python中的语义和在其他语言中是一样的,所以这里就只说它们的写法。

if语句

if语句是最常用的条件控制语句。

注意:

1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。

2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。

3、在Python中没有switch - case语句。

while语句

同样需要注意冒号和缩进。另外,在Python中没有do..while循环。

我们用while循环做一个斐波那契数列,先来介绍一下什么是斐波那契数列

斐波那契数列,又称黄金分割数列、因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用.

for语句

Python中的for语句与C语言中的for语句不同:C语言中的for语句允许用户自定义迭代步骤和终止条件;而Python的for语句可以遍历任何序列,按照元素在序列中的出现顺序依次迭代。

range函数

如果你要遍历一个数字序列,那么内置的range()函数就可以派上用场了。函数range()常用于for循环中,用于产生一个算术数列:

break、continue、pass及else子句

break语句与C语言中的一样,跳出最近的for或while循环。

continue语句同样是从 C 语言借用的, 它终止当前迭代而进行循环的下一次迭代。

pass语句什么都不做,它只在语法上需要一条语句但程序不需要任何操作时使用。pass语句是为了保持程序结构的完整性。

else子句 在循环语句中还可以使用else子句,else子句在序列遍历结束(for语句)或循环条件为假(while语句)时执行,但循环被break终止时不执行。

函数

函数(function)是组织好的、可重复使用的、具有一定功能的代码段。函数能提高应用的模块性和代码的重复利用率,Python中已经提供了很多内建函数,比如print(),同时Python还允许用户自定义函数。

定义 定义函数使用关键字def,后接函数名和放在圆括号( )中的可选参数列表,函数内容以冒号起始并且缩进。

注意:参数列表可选,文档字符串可选,return语句可选。

函数变量作用域

在函数内部定义的变量拥有一个局部作用域,在函数外定义的拥有全局作用域。注意:在函数内部可以引用全局变量,但无法对其赋值(除非用global进行声明)。

函数调用

1、普通调用 与其他语言中函数调用一样,Python中在调用函数时,需要给定和形参相同个数的实参并按顺序一一对应。

2、使用关键字参数调用函数 函数也可以通过keyword=value 形式的关键字参数来调用,因为我们明确指出了对应关系,所以参数的顺序也就无关紧要了。

3、调用具有默认实参的函数 Python中的函数也可以给一个或多个参数指定默认值

4、调用可变参数函数 通过在形参前加一个星号(*)或两个星号(**)来指定函数可以接收任意数量的实参

5、通过解包参数调用函数 上一点说到传递任意数量的实参时会将它们打包进一个元组或字典,当然有打包也就有解包(unpacking)。

lambda表达式

lambda关键词能创建小型匿名函数。lambda表达式可以在任何需要函数对象的地方使用,它们在语法上被限制为单一的表达式

文档字符串

函式体的第一个语句可以是三引号括起来的字符串, 这个字符串就是函数的文档字符串。我们可以使用print(function.__doc__)输出文档:

深入list列表

Python中任何值都是一个对象,所以任何类型(int、str、list…)都是一个类。而类就必然有它的方法或属性,我们要记下这么多类的所有方法显然是不可能的,这里介绍两个小技巧: dir() :内置函数,用来查询一个类或者对象所有属性。

help() :内置函数,用来查询具体的说明文档。

在小编之前发的文章中,初步的写了list列表,也介绍了列表是Python 中使用最频繁的数据类型。

列表当栈

List的方法使得其可以很方便地作为一个栈来使用。我们知道,栈的特点是最后进入的元素最�...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值