day01-day04总结- Python 数据类型及其用法

时间:2022-09-25 10:58:49

Python 数据类型及其用法:
本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁。

基本结构
我们首先要看的是几乎任何语言都具有的数据类型,包括字符串、整型、浮点型以及布尔类型。这些基本数据类型组成了基本控制块,从而创建我们的Python应用程序。

字符串
字符串(String) 是一段文本字符,通常以某种形式向用户输出。如果我们打开Python的解释器,我们试着最常见的输出“Hello World!”应用:

>>> print ("Hello, world!")
Hello, world!
Python 中的数据类型不需要像Java或C语言那样显示的定义,这就意味着在Python中字符串就是简单地用引号括起来来标识,向上面的“Hello, world!”那样。我们也可以使用单引号而不是双引号,当我们字符串中就有双引号时,使用单引号来表示整个字符串更加方便,如:

>>> print ("This is David's program")
This is David's program

>>> print ('"Hello", said David')
"Hello", said David
从上面你就可以看出在不同的条件下如何交叉使用不同的引号。

字符串提供了许多内置的函数,这些在很多Python程序中很有用处,它们包括:

endswith() - 检查字符串是否以给定字符串结尾
startswith() - 检查字符串是否以给定字符串开始
upper() - 将字符串所有字符变成大写
lower() - 将字符串所有字符变成小写
isupper()/islower() - 检测字符串是否全是大写/小写
我们也可以将字符串作为一个参数传入函数len()来返回字符串的长度,例如 len(“david”)
Python中字符串也是可迭代的,迭代的概念待会在列表和字典数据类型中可以做更深入的了解。这意味着我们可以依次循环字符串中每个字符,这在其它语言一般是不行的。

另一个关于字符串的技巧是,我们可以对字符串进行格式化。最好的方法是用 format语句来完成,这个函数为你处理你传入对象的类型以字符串形式显示,所以你可以传入任何类型的对象到 format 方法用来输出。如下:

>>> string_1 = "Hello, {}, here is your string".format("David")
'Hello, David, here is your string'
>>>
>>> string_2 = "Hello, {}, your are {} years old".format("David", 23)
'Hello, David, you are 23 years old'
>>>
>>> string_3 = "Hello, {}, your are {} years old".format("David", 23.5)
'Hello, David, you are 23.5 years old'
从上面的代码可以清晰地看出,format 方法可以用来将任意的 Python 数据类型替换成字符串。

布尔类型以及if语句
布尔值 (True or False) 在任何语言中都是至关重要的,它们可以使我们根据变量的真假值来做出判断,通过代码可以用来控制程序的路径。在 Python 中,布尔值的首字母是大写的:True 和 False。举例来说,使用上面提到的字符串的一些方法,我们可以测试一个字符串是否是大写,并输出正确的结果:

>>> if "david".isupper():
print ('"david" is uppercase')
else:
print ('"david" is lowercase')

"david" is lowercase
Python 中if 语句用来检查第一个条件是否为真,如果为True就会打印出 “david” is uppercase。然而在这个例子中,它返回False,所以 else 块执行,打印出 “david” is lowercase 。

在Python中,数据有其隐式的真假值的,这对于使代码简短、准确非常有帮助,就不需要每个地方都做判断了。下面就是Python中使用隐式布尔值的例子:

>>> bool('')
False
>>> bool('hello')
True
>>> a = None
>>> b = 1
>>> bool(a)
False
>>> bool(b)
True
>>> if a:
print ("Yes")

>>> if b:
print ("Yes")
Yes
在这个例子中,你可以看到我们可以检查变量的真假值。通过调用bool方法,传入我们的变量给其做参数,返回True 或者 False。空值或者None(Python中类似其它语言Null 或者 Nil 的值)都会被认为是 False ,而其它情形则被认为是 True。

整型、浮点型、复数
数值(Numbers) 在Python中就像通常格式所代表的那样,整型如1,10,56,1045,100433 等等。

浮点型,通常我们需要小数时使用,例如1.23、0.34532、23.4667 等等。

Python 支持简单和高级的数学计算,有着广泛的用途,最常用的还是基本的算术运算:

>>> 1 + 1
2
>>> 1 - 1
0
>>> 2 * 2
4
>>> 2 / 2
1
查看 Python Docs,复数类型解释如下:

Complex numbers are also supported; imaginary numbers are written with a suffix of j or J. Complex numbers with a nonzero real component are written as (real+imagj), or can be created with the complex(real, imag) function.
>>> 1j * 1J
(-1+0j)
>>> 1j * complex(0,1)
(-1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)
Complex numbers are always represented as two floating point numbers, the real and imaginary part. To extract these parts from a complex number z, use z.real and z.imag.
>>> a=1.5+0.5j
>>> a.real
1.5
>>> a.imag
0.5
更多高级结构
列表以及for循环
列表(list) 是Python以及其它语言中最常用到的数据结构之一。Python 使用中括号()用来解析列表,允许你以任意的顺序存储数据,从而方便处理。举例来说,如果我们需要从一个对象中抽取一些数据,我们可以将这些数据存在列表中以备后面使用:

>>> my_list = []
>>> for object in objects:
my_list.append(object.name)
>>> print (my_list)
['name_1', 'name_2', 'name_3']
上面的例子并不好,但你可以看到我们是如果从对象中提取数据,并将它们放到我们的列表中。类似的,如果我们有两个列表,使用extend方法我们可以将它们合并成一个:

>>> list_1 = [1,2,3]
>>> list_2 = [4,5,6]
>>> print (list_1.append(list_2))
[1,2,3,[4,5,6]]
>>> print (list_1.extend(list_2))
[1,2,3,4,5,6]
这能清楚地看出这两个重要方法的不同。

在我们的第一个例子中,使用到了for循环来从我们的数据中构成列表,一种更简洁的解决方法可以使用列表扩展,这可以将整个过程压缩成一行。这是Python提供的一种高效的解决方法:

>>> my_list = [object.name for object in objects]
>>> print my_list
['name_1', 'name_2', 'name_3']
再来看看这是如何映射到第一中方法的:在列表中,我们遍历objects,使用object作为从objects取出每个元素的变量名,最后我们取出object的name构成我们的列表。

除了使用方括号用来构造列表对象之外,我们还可以使用列表构造函数list()来建立我们的列表,如下:

>>> list('a')
['a']
>>> values = (1,2,3,4) # tuple object see below
>>> list(values)
[1,2,3,4]
字典
另一个普遍使用的Python数据结构是字典(Dictionaries)。字典用来存储大量数据,并且提供快速处理的方法。一种常见的字典应用的例子是通讯录系统。在字典这种数据结构中,你需要一个唯一的‘key’用来查询它对应的‘value’。在通讯录中,那个唯一的‘key’可以是电话号码,因此,字典结构是这样的:

>>> phonebook = {'012345678': 'A Person',
'987654321': 'A.N Other'}
这儿我们有一个字典,电话号码作为‘key’,对应人名作为‘value’。现在我们可以使用这个结构来查询,如下:

>>> phonebook['012345678']
'A Person'
Python的字典同样提供迭代每个数的标准方法,它们是:iteritems、iterkeys以及itervalues。这些函数分别允许我们迭代keys和values,仅迭代keys以及仅迭代values。下面是例子:

迭代所有的项:

>>> for key, value in phonebook.iteritems():
print (key, value)
987654321 A.N Other
012345678 A Person
仅迭代所有的keys:

>>> for key in phonebook.iterkeys():
print (key)
987654321
012345678
仅迭代所有的values:

>>> for value in phonebook.itervalues():
print (value)
A.N Other
A Person
与列表一样,也有不止一种创建字典的方法。到目前为止,我们只使用了逐个列举并用花括号括起来的方法来创建字典。然而,我们还可以像下面这样使用字典构造函数创建,需要传入关键字参数来创建我们字典的键值对:

>>> dict(a=1, b=2, c=3)
{'a': 1, 'c': 3, 'b': 2}
Sets 和 Frozensets
类似与列表,我们还有集合(Sets) 以及 Frozensets 的数据结构。集合允许我们像列表那样存储数据,但不同的是集合里不允许有重复元素。当我们想确保每个数据只有一份拷贝的时候,这个是非常棒的。Frozensets 几乎和普通的集合是一样的,但它是不可变的类型(immutable),这意味着一旦它被创建,它就不能再以任何方式改变。

同样,我们创建集合的方法有列举法(注意:相同的元素会自动删除):

>>> a = {1,2,3,3}
set([1, 2, 3])
也可以使用构造函数:

>>> set([1,2,3,3])
set([1, 2, 3])
Python 提供了强大的集合操作方法,我们可以完成数学中集合的并集、交集、差集等操作,如下:

>>> a = {1,2,3}
>>> b = {3,4,5}
>>> a.union(b)
set([1, 2, 3, 4, 5])
>>>
>>> a.difference(b)
set([1, 2])
>>>
>>> a.intersection(b)
set([3])
元组
最后介绍的 Python 数据类型是元组(tuples)。元组类似与列表,用逗号(,)来分隔存储的数据,与列表不同的是元组是不可变类型(immutable),列表可以任你插入或改变,而元组不行。所以,元组适用于你的数据是固定且不需改变的情形。从内存的角度来看,使用元组有一大好处是,Python可以明确地知道需要分配多少内存给元组(同样 Frozensets 也有这个好处)。

Python 同样也提供列举法和构造法来创建一个元组:

>>> my_tuple = (1,2,3,4)
(1,2,3,4)
>>>
>>> a = tuple([1,2,3,4])
>>> type(a)

day01-day04总结- Python 数据类型及其用法的更多相关文章

  1. Python 数据类型及其用法

    本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...

  2. Python数据类型的用法

    字符串的用法 res = 'hellow,world' print(res) #res.显示的都是它的方法,下划线的除外 1 判断字符串的结尾字符,返回的值的布尔形式 endswith 判断字符串的开 ...

  3. 浅谈Python在信息学竞赛中的运用及Python的基本用法

    浅谈Python在信息学竞赛中的运用及Python的基本用法 前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在& ...

  4. Python学习笔记(五)--Python数据类型-数字及字符串

    Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...

  5. python数据类型分类以及运算类型

    一.python数据类型 目录: 1.数字(整数.小数) 2.字符串(单引号.双引号.三引号) 3.元组 #元素确定之后不能修改 4.列表 #元素可以修改 5.集合  #不讲顺序,得到的结果没有重复元 ...

  6. python 数据类型详解

    python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...

  7. 【转】Python数据类型之&OpenCurlyDoubleQuote;集合&lpar;Sets&rpar;与映射&lpar;Mapping&rpar;”

    [转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...

  8. python map 常见用法

    python map 常见用法2017年02月01日 19:32:41 淇怪君 阅读数:548版权声明:欢迎转载,转载请注明出处 https://blog.csdn.net/Tifficial/art ...

  9. python之函数用法isinstance&lpar;&rpar;

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法isinstance() #isinstance() #说明:返回一个布尔值,判断数据 ...

随机推荐

  1. mysql大数据分表后查询

    当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度,举例说明: 1亿条数据,分100张表 1.首先创建100张表 $i=0;while($i<=99){echo "$n ...

  2. hbase shell 基本命令总结

    访问hbase,以及操作hbase,命令不用使用分号hbase shell 进入hbase list 查看表hbase shell -d hbase(main):024:0> scan '.ME ...

  3. JS-字符串操作,查找显示高亮

    <!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...

  4. jquery加载页面的方法&lpar;页面加载完成就执行&rpar;

    jquery加载页面的方法(页面加载完成就执行),建议大家看下windows.onload与$(document).ready之间的区别. 1.$(function(){  $("#a&qu ...

  5. WEB开发者必备的7个JavaScript函数

    防止高频调用的debounce函数 这个 debounce 函数对于那些执行事件驱动的任务来说是必不可少的提高性能的函数.如果你在使用scroll, resize, key*等事件触发执行任务时不使用 ...

  6. 从VSS到SVN再到Git 记Git的基本操作

    Source code control 一直是软件开发过程中重要的环节,从最初的纯文件备份,到使用工具进行管理.Source code control 工具的作用也不仅仅只是单纯的对同一个版本进行管理 ...

  7. 洛谷P4719 动态dp

    动态DP其实挺简单一个东西. 把DP值的定义改成去掉重儿子之后的DP值. 重链上的答案就用线段树/lct维护,维护子段/矩阵都可以.其实本质上差不多... 修改的时候在log个线段树上修改.轻儿子所在 ...

  8. &lpar;11&rpar;ssh免密登录配置

    ***在Linux命令行中登录到另一台虚拟机(需要用到ssh协议) Linux中默认有ssh的服务器端和客户端,客户端的名字就叫ssh 前提是当前使用的用户名在待连接的虚拟机中存在 格式:  ssh ...

  9. RabbitMQ 使用主题进行消息分发

    在上篇文章RabbitMQ消息队列(五):Routing 消息路由 中,我们实现了一个简单的日志系统.Consumer可以监听不同severity的log.但是,这也是它之所以叫做简单日志系统的原因, ...

  10. 直播 APP 的直播实现流程

    直播平台搭建所涉及的事项非常的广泛, 不仅需要直播源码. 直播系统开发. 后台服务 器.专门的运维人员等, 还需要技术团队切实的把控.下面, 小编就给大家确切的说下直播 平台搭建需要用到哪些步骤. 1 ...