Day 5/100:Python 变量与数据类型

在内存存储的数据可以有多种类型。例如,人的姓名可以用字符型存储、年龄可以使用数值型存储、而婚否可以使用布尔类型存储。这些都是Python中提供的基本数据类型。

变量存储在内存中的值,这就意味着在创建变量时会在内存中开辟一个空间。

基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。

变量可以通过变量名访问。在 Python 中 变量命名规定,必须是大小写英文,数字和 下划线(_)的组合,并且不能用数字开头。

变量命名规则:

变量名只能是字母,数字和下划线的任意组合

变量名第一个字符不能是数字

变量名区分大小写,大小写字母被认为是两个不同的字符

特殊关键字不能命名为变量名

并且变量也可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

一般常见的数据类型有以下六种:

Number(数字)

String(字符串)

List(列表)

Tuple(元组)

Sets(集合)

Dictionary(字典)

根据可变与不可变类型又可以分为以下两种:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

Number(数字)

数字类型是顾名思义是用来存储数值的,需要记住的是,有点和 Java 的字符串味道差不多,如果改变了数字数据类型的值,将重新分配内存空间。

Python 支持三种不同的数值类型:

整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。

浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

name = '张三'  #字符串

age = 18    #整型

height = 1.88  #浮点型

#打印变量类型

print(type(name))

print(type(age))

print(type(height))

'''

输出

<class 'str'>

<class 'int'>

<class 'float'>

'''

String(字符串)

字符串或串(String)是由数字、字母、下划线组成的一串字符。

创建字符串可以使用单引号、双引号、三单引号和三双引号,这三种形式实际上没有区别,只是在形式上有不同。

str1 = '先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。'

str2 = "然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。"

str3 = '''诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。

宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。

侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。

print(1, str1)

print(2, str2)

print(3, str3)

'''

输出

1 先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。

2 然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。

3 诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。

宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。

侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。

'''

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

我们定义一个 s='python'语句,它在计算机中的执行顺序是先在内存中创建一个字符串 Python ,在程序栈寄存器中创建一个变量 s,最后把 Python  的地址赋给s 。

Python 访问字符串中的值

如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

str = 'apple'

print(str[1:5])

'''

输出

pple

'''

Python 字符串连接

va1 = 'hello world'

print(va1, ',python')

print(va1+'+python')

'''

输出

hello world ,python

hello world+python

'''

点击了解字符串详情:

https://www.runoob.com/python/python-strings.html

List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。它的元素是可以改变的。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 标识,是 python 最通用的复合数据类型。

zhangsan_info = ['张三', 22, 55, '北京']

print(zhangsan_info)

'''

输出

['张三', 22, 55, '北京']

'''

访问列表中的值

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符。

list1 = ['Carter', 'Kobe', 'Iverson', 'McGrady']

list2 = [1, 2, 3, 4, 5, 6, 7]

print(list1[0])

print(list2[0:2])

'''

输出

Carter

[1, 2]

'''

更新列表

你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项。

list = []

list.append('Jordan')

list.append('Kobe')

print(list)

'''

输出

['Jordan', 'Kobe']

'''

删除列表元素

可以使用 del 语句来删除列表的元素。

list = ['Jordan','Carter', 'Kobe', 'Iverson', 'McGrady']

print(list)

del list[0]

print(list)

'''

输出

['Jordan', 'Carter', 'Kobe', 'Iverson', 'McGrady']

['Carter', 'Kobe', 'Iverson', 'McGrady']

'''

点击了解列表详情:

https://www.runoob.com/python/python-lists.html

Tuple(元组)

Python的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

lisi_info = ('李四', 22, 55, '北京')

print(lisi_info)

'''

输出

('李四', 22, 55, '北京')

'''

创建空元组

#创建一个空元组

tup1 = ()

元组中只包含一个元素时,需要在元素后面添加逗号。

#创建致函一个元素的元组

tup1 = (55,)

访问元组

元组可以使用下标索引来访问元组中的值类似于列表一样。

tup1 = ('Carter', 'Kobe', 'Iverson', 'McGrady')

tup2 = (1, 2, 3, 4, 5, 6, 7)

print(tup1[0])

print(tup2[0:2])

'''

输出

Carter

(1, 2)

'''

修改元组

前面提到过元组中的元素值是不允许修改的

tup1 = ('Carter', 'Kobe', 'Iverson', 'McGrady')

#错误示范

tup1[1] = ('bryant')

print(tup1)

'''

输出

TypeError: 'tuple' object does not support item assignment

'''

但我们可以对元组进行连接组合。

tup1 = ('Carter', 'Kobe', 'Iverson', 'McGrady')

tup2 = (1, 2, 3, 4, 5, 6, 7)

tup = tup1 + tup2

print(tup)

'''

输出

('Carter', 'Kobe', 'Iverson', 'McGrady', 1, 2, 3, 4, 5, 6, 7)

'''

删除元组

元组中的元素值是不允许删除的

tup1 = ('Carter', 'Kobe', 'Iverson', 'McGrady')

#错误演示

del tup1[1]

print(tup1)

'''

输出

TypeError: 'tuple' object doesn't support item deletion

'''

但我们可以使用del语句来删除整个元组。 以上实例元组被删除后,输出变量会有异常信息。

点击了解元组详情:

https://www.runoob.com/python/python-tuples.html

集合(set)

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

parame = {value01,value02,...}

或者

set(value)

集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:

a_set = {1,2,3,4}

# 添加

a_set.add(5)

print(a_set)  # 输出{1, 2, 3, 4, 5}

# 删除

a_set.discard(5)

print(a_set)  # 输出{1, 2, 3, 4}

'''

输出

{1, 2, 3, 4, 5}

{1, 2, 3, 4}

'''

添加元素

使用add()将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

set1 = set(('Carter', 'Kobe', 'Iverson', 'McGrady'))

#添加不存在的数据

set1.add('Jordan')

#添加已存在的数据

set1.add('Carter')

print(set1)

'''

输出

{'Carter', 'Jordan', 'Kobe', 'McGrady', 'Iverson'}

'''

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,可以自己尝试一下。

s.update( x )

移除元素

将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。

set1 = set(('Carter', 'Kobe', 'Iverson', 'McGrady'))

#删除已存在的数据

set1.remove('Carter')

print(set1)

'''

输出

{'Iverson', 'Kobe', 'McGrady'}

'''

set1 = set(('Carter', 'Kobe', 'Iverson', 'McGrady'))

#删除不存在的数据

set1.remove('Carter666')

print(set1)

'''

输出

KeyError: 'Carter666'

'''

计算集合元素个数

使用len()方法统计集合元素个数

set1 = set(('Carter', 'Kobe', 'Iverson', 'McGrady'))

print(len(set1))

'''

输出

4

'''

清空集合

使用clear()方法统计集合元素个数

set1 = set(('Carter', 'Kobe', 'Iverson', 'McGrady'))

set1.clear()

print(set1)

print(len(set1))

'''

输出

set()

0

'''

点击了解集合详情:

https://www.runoob.com/python3/python3-set.html

Dictionary(字典)

字典是一种映射类型,它的元素是键值对,字典的关键字必须为不可变类型,且不能重复。创建空字典使用 {} 。

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}

print(tinydict)

'''

输出

{'name': 'runoob', 'code': 6734, 'dept': 'sales'}

'''

访问字典

把需要访问的值的键放入到方括号中

tinydict = {'name': '张三','age':18, 'dept': 'sales'}

print('name:',tinydict['name'])

'''

输出

name: 张三

'''

如果用字典里没有的键访问数据,会输出错误

tinydict = {'name': '张三','age':18, 'dept': 'sales'}

print('name:',tinydict['name1'])

'''

输出

KeyError: 'name1'

'''

添加字典元素

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对

tinydict = {'name': '张三','age':18, 'dept': 'sales'}

#添加

tinydict['address'] = '北京'

print(tinydict)

'''

输出

{'name': '张三', 'age': 18, 'dept': 'sales', 'address': '北京'}

'''

修改字典元素

tinydict = {'name': '张三','age':18, 'dept': 'sales'}

#修改

tinydict['address'] = '上海'

print(tinydict)

'''

输出

{'name': '张三', 'age': 18, 'dept': 'sales', 'address': '上海'}

'''

删除字典元素-删除单一的元素

tinydict = {'name': '张三','age':18, 'dept': 'sales'}

print(tinydict)

#删除字典元素

del tinydict['dept']

print(tinydict)

'''

输出

{'name': '张三', 'age': 18, 'dept': 'sales'}

{'name': '张三', 'age': 18}

'''

删除字典元素-清空字典

tinydict = {'name': '张三','age':18, 'dept': 'sales'}

print(tinydict)

#清空字典

tinydict.clear()

print(tinydict)

'''

输出

{'name': '张三', 'age': 18, 'dept': 'sales'}

{}

'''

删除字典元素-删除字典

tinydict = {'name': '张三','age':18, 'dept': 'sales'}

print(tinydict)

#删除字典

del  tinydict

print(tinydict)

'''

输出

NameError: name 'tinydict' is not defined

{'name': '张三', 'age': 18, 'dept': 'sales'}

'''

点击了解字典详情:

https://www.runoob.com/python3/python3-dictionary.html

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

推荐阅读更多精彩内容