python数据类型

1 变量

  • 对象有类型,变量无类型,变量只是对象的一个标签。
  • 每个变量中存储一个值----与变量相关的信息。
  • 程序中可随时修改变量的值,python始终记录最新值。
1.1 变量的命名和使用
  • 变量名只包含字母、数字、下划线,可以字母或下划线开头,不能以数字开头。
  • 变量名不能包含空格,可使用下划线分割其中的单词。
  • python关键字和函数名不能用作变量名。
  • 变量名应简短且具有描述性。
1.2 避免命名错误

程序存在错误,解释器会提供一个traceback,它是一个记录,指出程序可能在哪个地方出错。

名称错误通常两种情况:使用前未赋值,输入变量名时拼写不正确。

2 python数据类型

python中标准数据类型6种:Number、String、List、Tuple、Dict、Set

按照可变不可变分类:不可变类型:数字、字符串、元组 可变类型:列表、字典、集合

序列类型:字符串、列表、元组

序列

img
2.1 字符串 str()(不可变)
  • 表示:单引号、双引号、反斜杠(转义)、原始字符串(r/R)
  • 相关函数:repr() input() chr() ord() len()
  • 操作:索引、分片、加、乘、成员检查(in/not in)、长度、最大值、最小值
  • 格式化输出:
img
img
  • 占位符:print("Hello, %s.My name is %s." %("fengdi", "yuxi")) %s为占位
  • .format():{index}为占位符
print("hello {}, my name is {}".format("fengdi", "yuxi"))
print("hello {0}, my name is {1}".format("fengdi", "yuxi"))
print("hello {name1}, my name is {name2}".format(name1="fengdi", name2="yuxi"))
  • 接受输入:

    • input() :从标准输入读取一个字符串
    • eval(input()) :原始输入为何类型,结果即为何类型(接受原始输入)
  • 常用方法:

    • split():返回字符串列表
    • strip():去掉两端空格 (.lstrip() .rstrip())
    • upper():全部大写 (.lower() .title() .isupper() .islower())
    • join():.split()的反方法。S.join(a) S为分隔符
    • find():返回子串的最小索引,未找到返回-1
    • index():同上,未找到抛出异常
    • replace(old, new):替换字符串
    • count():统计子串出现的次数
2.2 数字 number(不可变)
  • 分类:int float complex Bool
  • 运算:+ - * / // % **

注:对于除法而言,只要有一个为浮点数,结果为浮点数。

  • 模块:math() cmath()
  • 函数:id() type() dir() help() pow() sqrt() abs() round() divmod() floor()

id():对象的内存地址 help():显示对象的帮助信息 pow():乘方运算

type():对象的类型 sqrt():math模块提供,开方运算 abs():绝对值

dir():对象的属性 floor():返回下舍整数

2.3 列表 list()(可变)
  • 表示:[] 里面可为任意类型 list()函数:list(iterable)

  • 操作:索引、分片、加、乘、成员检查、长度、最大值、最小值、遍历

    改变元素:重新赋值、 删除元素:del语句

  • 常用方法:

    • append():末尾添加元素
    • extend():扩展列表,通过iterable
    • insert():根据位置插入元素
    • count():统计元素出现次数
    • index():返回某元素的第一个索引位置
    • pop():删除指定位置元素,默认删除末尾一个,有返回值即删除的元素
    • remove():移除某个元素的第一个匹配值
    • clear():清空列表元素
    • copy():复制列表元素,生成一个新对象,内存地址不同即并不指向同一个对象。也可使用切片的方法,a[:],但不能直接赋值,直接赋值为同一对象(引用)
    • sort():排序,原地修改,默认从小到大,设置reverse=True相反
    • sorted():排序,修改副本,自身不变
    • reverse():反转列表
    • reversed():反转
  • 作为堆栈使用:后进先出---> append()和pop()方法,作为队列使用,先进先出

  • range():该函数常用来生成数字列表,如list(range(1, 10, 2))

  • 列表解析:从序列中创建列表,表达式后可跟多个if或for 子句来,来满足情况

mylist = [x * x for x in range(10)]

mylist = [x * x for x in range(10) if  _____  ]   # 后跟if用来限制条件

mylist = [x * y for x in range(10) for y in range(10)]    # 双重for语句
2.4 元组 tuple() 不可变 有序
  • 表示:圆括号()表示,可为任意类型(只有一个元素需要加逗号)
  • 操作:索引、分片、加、乘、长度、成员检查、最大值、最小值、遍历
  • 常用方法:count()、index()
2.5 字典 dict() 无序性
  • 表示:花括号{}表示,空字典:a={} 键值对形式
  • 键不可重复且为不可变类型(数字 字符串 元组),值可重复(可为python任意对象)
dict1 = {"name":"fengdi", "age":23, "language":"python" }

a = dict([("name", "fengdi"), ("age", 25)])

b = dict(name="fengdi", age=23) # 关键字参数构造
  • 基本操作:

    • len():字典长度(键值对数量)
    • d[key]:获取某个键对应的值
    • d[key]=value:重新赋值,不存在则添加该键值对
    • del d[key]:删除某键值对
    • key in d:成员检查
  • 常用方法:

    • copy:内存中产生一个新对象,地址不同(浅拷贝)整体来说
    • deepcopy:import copy copy.deepcopy()都不为同一对象
    • clear:清空字典元素
    • setdefault:查找某键对应的值,键不存在可设定默认值,未设定,默认值为None,并添加到字典
    • get:同上,不存在则不添加到字
    • items:返回视图,键值对组成的列表形式,可用来遍历
    • keys:同上,键组成的列表形式
    • values:同上,值组成的列表形式
    • pop:删除指定的键对应的值并返回,若不存在,返回指定值,否则抛出错误
    • pipitem:随机删除键值对,并返回tuple,字典为空,抛出错误
    • update:从另一个字典或可迭代对象更新字典
2.6 集合 set() 元素不可重复,无序
  • 表示:花括号{}表示, set(variable):set()函数 (空集合:set())

  • 可变,即unhashable,集合里面的元素应该可哈希,即不可变类型

  • 常用方法:

    • add:添加元素
    • pop:随机删除元素并返回,集合为空抛出异常
    • update:利用其它集合或可迭代对象修改集合
    • remove:删除指定元素,元素不存在,抛出异常
    • discard:删除指定元素,元素不存在,不做任何事
    • clear:清空集合元素
  • 不可变集合:a=frozenset() 元素不可修改

  • 集合运算:

    • 元素与集合的关系:in not in
    • 集合与集合:子集:<或a.issubset(b)
    • 超集:>或a.issuperset(b)
    • 并集:|或a.union(b)
    • 交集:&或a.intersection(b)
    • 差集:-或a.difference(b)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容