Python 数据类型

Python 介绍

Python 特性

  • 1、python 语法简单,容易理解,容易学习
  • 2、跨平台,可在windows/linux/mac os 等系统上运行
  • 3、可以做网站、爬虫、大数据处理、机器学习
  • 4、拥有强大、丰富的第三方库 numpy、pandas....

最简单的开始

>>> print('hello,world')
hello,world
>>> 4+5
9
>>> 4*5
20
>>> 2**3
8

变量及代码规范

基本规范

  • 1、标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线
  • 2、标识符名称的其他部分可以由字母(大写或小写)、下划线('_')或数字(0-9)组成。
  • 3、标识符名称是对大小写敏感的

建议

  • 1、不要使用单字符
  • 2、变量名能清晰表达变量的意思
  • 3、合理使用字母中间下划线
>>> apple_price = 5
>>> apple_weight = 2
>>> apple_cost = apple_price * apple_weight
>>> print(apple_cost)
10
>>> print("苹果单价:{}元/斤,苹果重量:{}斤,总价格:{}元。".format(apple_price,apple_weight,apple_cost))
苹果单价:5元/斤,苹果重量:2斤,总价格:10元。

#首字母为数字
>>> 3a = 1
SyntaxError: invalid syntax
#字母中有空格
>>> my age = 15
SyntaxError: invalid syntax
#-非法字符串
>>> my-age = 15
SyntaxError: can't assign to operator

Python 数据类型

Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Sets(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

   不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);
   可变数据(两个):List(列表)、Dictionary(字典)。
   注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
>>> a,b,c,d = 10,3.14,True,4+3j
>>> print(type(a),type(b),type(c),type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
>>> type('')
<class 'str'>
>>> type([])
<class 'list'>
>>> type(())
<class 'tuple'>
>>> type(set())
<class 'set'>
>>> type({})
<class 'dict'>

Python基础语法可参考 Python 基础语法一篇入门

1、数字类型

Python3 支持 int、float、bool、complex(复数)。
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

>>> number = 10
>>> number = number + 10
>>> number += 10
>>> number -=10
>>> number *= 10
>>> number /= 10

# 涉及到复杂的计算需要导入函数库
>>> import math
>>> math.pi
3.141592653589793
#保留5位小数
>>> round(math.pi,5)
3.14159
>>> math.sin(math.pi/2)
1.0
#向下取整
>>> math.floor(9.345)
9
#向上取整
>>> math.ceil(9.345)
10

注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。

操作符 解释
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
is 是相同对象

2、字符串

详细字符串操作可参考 Python 字符串常见操作总结

#字符串是不可变类型的变量
>>> s = 'nihao'
>>> type(s)
<class 'str'>
>>> s = 'nihao'

#id 函数,返回一个身份标识符,可以理解为一个变量的内存地址
>>> id(s)
53178808
>>> id('nihao')
53178808
>>> a = "nihao"
>>> id(a)
53178808
>>> 

#字符串可以用双引号,也可以用单引号。通过单、双引号的恰当使用,可以避免不必要的字符转义
>>> line = "hello world"
>>> line = "hello world\""
>>> line = 'hello world\''

#字符串切片
>>> s = 'Tim Cook is CEO of Apple'
>>> s[0]
'T'
>>> s[0:8]
'Tim Cook'
>>> s[-5:]
'Apple'

#翻转字符
>>> s[::-1]
'elppA fo OEC si kooC miT'

#字符串切片直接赋值是不可行的
>>> s[0:8] = 'Jobs'
Traceback (most recent call last):
  File "<pyshell#265>", line 1, in <module>
    s[0:8] = 'Jobs'
TypeError: 'str' object does not support item assignment

#替换
>>> s.replace('Tim Cook','Jobs')
'Jobs is CEO of Apple'

3、列表 list

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

>>> list1 = [1,2,3,4,5]
>>> list2 = ['a','b','c','d','e']
#获取列表元素
>>> list1[0]
1
>>> list2[1:3]
['b', 'c']
#获取列表长度
>>> len(list2)
5

#list列表是可变的,且不分类型
#列表新增元素
>>> list2.append(100)
>>> list2
['a', 'b', 'c', 'd', 'e', 100]
#列表元素修改
>>> list2[-1]='f'
>>> list2
['a', 'b', 'c', 'd', 'e', 'f']

#判断元素是否在列表中
>>> 'g' in list2
False
>>> 'f' in list2
True

#列表删除,注意是移除列表中某个值的第一个匹配项
>>> list2.remove('f')
>>> list2
['a', 'b', 'c', 'd', 'e']
#移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
>>> list2.pop()
'e'
>>> list2
['a', 'b', 'c', 'd']

#反向列表中元素
>>> list2.reverse()
>>> list2
['d', 'c', 'b', 'a']
>>> list2.reverse()

# 注意和append区别,extend是在列表末尾一次性追加另一个序列中的多个值
>>> list2.extend(['c','e'])
>>> list2
['a', 'b', 'c', 'd', 'c', 'e']

#list2 = list2 + list1 等同于list2.extend(list1)
>>> list3 = list2 + list1
>>> list3
['a', 'b', 'c', 'd', 'c', 'e', 1, 2, 3, 4, 5]

#统计某个元素在列表中出现的次数
>>> list2.count('c')
2

#从列表中找出某个值第一个匹配项的索引位置
>>> list2.index('e')
5

#对原列表进行排序
>>> list2.sort()
>>> list2
['a', 'b', 'c', 'c', 'd', 'e']

#遍历
>>> for i in list2:
    print(i)
a
b
c
d
c
e

4、元祖 tuple

Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。

>>> tup1 = (12,34,56)
>>> tup1
(12, 34, 56)
>>> tup1[2]
56
>>> tup1.index(56)
2

#元祖中元素不能修改
>>> tup1[2] = 78
Traceback (most recent call last):
  File "<pyshell#328>", line 1, in <module>
    tup1[2] = 78
TypeError: 'tuple' object does not support item assignment

5、集合 Set

集合(set)是一个无序不重复元素的序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

>>> studentA = {'Tom','Jim','Mary','Tom'}
>>> studentA
{'Mary', 'Jim', 'Tom'}
>>> studentB = {'Jack','Rose','Jim'}
# 差集
>>> studentA - studentB
{'Mary', 'Tom'}
#并集
>>> studentA | studentB
{'Mary', 'Rose', 'Jim', 'Tom', 'Jack'}
#交集
>>> studentA & studentB
{'Jim'}
#A和B中不同时存在的集合
>>> studentA ^ studentB
{'Mary', 'Rose', 'Tom', 'Jack'}
>>> 

6、字典类型 dict

>>> Trump = {'sex':'male','job':'president'}
>>> type(Trump)
<class 'dict'>
>>> Trump['job']
'president'

#如果使用列表,比较繁琐
>>> key = ['sex','job']
>>> value = ['male','president']
>>> value[key.index('job')]
'president'

#将两个列表转成字典-拉锁函数zip,列表中每个元素是一个元祖
>>> list(zip(key,value))
[('sex', 'male'), ('job', 'president')]
>>> dict(list(zip(key,value)))
{'sex': 'male', 'job': 'president'}

#在字典中取一个不存在的值会报错,但使用get不会,返回None
>>> Trump['age']
Traceback (most recent call last):
  File "<pyshell#348>", line 1, in <module>
    Trump['age']
KeyError: 'age'

#get 返回指定键的值
>>> print(Trump.get('age'))
None

#如果值不在字典中可指定一个默认值
>>> print(Trump.get('age',60))
60

#字典添加及删除
>>> Trump['age'] = 67
>>> Trump
{'sex': 'male', 'job': 'president', 'age': 67}
>>> del Trump['age']
>>> Trump
{'sex': 'male', 'job': 'president'}

#以列表返回一个字典所有的键
>>> Trump.keys()
dict_keys(['sex', 'job'])

#以列表返回字典中的所有值
>>> Trump.values()
dict_values(['male', 'president'])

#以列表返回可遍历的(键, 值) 元组数组
>>> Trump.items()
dict_items([('sex', 'male'), ('job', 'president')])
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,132评论 6 523
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,457评论 3 404
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,411评论 0 368
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,147评论 1 301
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,145评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,611评论 1 315
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,962评论 3 429
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,948评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,479评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,514评论 3 347
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,640评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,228评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,973评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,402评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,551评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,210评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,714评论 2 366

推荐阅读更多精彩内容