Python变量和数据类型详解
Python  /  管理员 发布于 7年前   411
Python 变量类型
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
变量赋值
Python 中的变量赋值不需要类型声明。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
#!/usr/bin/python# -*- coding: UTF-8 -*- counter = 100 # 赋值整型变量miles = 1000.0 # 浮点型name = "John" # 字符串 print(counter)print(miles)print(name)
以上实例中,100,1000.0和"John"分别赋值给counter,miles,name变量。
执行以上程序会输出如下结果:
100
1000.0
John
多个变量赋值
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
您也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "john"
以上实例,两个整型对象1和2的分配给变量 a 和 b,字符串对象 "john" 分配给变量 c。
注意:
以下关键字不能声明为变量:
and、as、assert、break、class、continue、def、del、elif、else、except、exec、finally、for、global、if、import、in、is、lambda、not、or、pass、print、raise、return、try、while、with、yield、id
Python中数据类型
一、整数
int = 20
print int
print 45678 + 0x12fd2
二、浮点数
float = 2.3
print float
三、字符串
a、使用单引号(')
用单引号括起来表示字符串,例如:
str = 'this is string'
print str
b、使用双引号(")
双引号中的字符串与单引号中的字符串用法完全相同,例如:
str = "this is string";
print str
c、使用三引号(''')
利用三引号,表示多行的字符串,可以在三引号中自由的使用单引号和双引号,例如:
str = '''this is string
this is pythod string
this is string'''
print str
四、布尔值
and:与运算,只有所有都为True,and运算结果才是True。
or:或运算,只要其中有一个为True,or运算结果就是True。
not:非运算,它是一个单目运算符,把True变成False,False 变成True。
bool = False
print bool
bool = True
print bool
五、空值
空值是Python里一个特殊的值,用None表示。
None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
六、列表
# -*- coding:utf-8 -*-lst = ['A', 'B', 1996, 2017]nums = [1, 3, 5, 7, 8, 13, 20]# 访问列表中的值print "nums[0]:", nums[0] # 1print "nums[2:5]:", nums[2:5] # [5, 7, 8]print "nums[1:]:", nums[1:] # [3, 5, 7, 8, 13, 20]print "nums[:-3]:", nums[:-3] # [1, 3, 5, 7]print "nums[:]:", nums[:] # [1, 3, 5, 7, 8, 13, 20]# 更新列表nums[0] = "ljq"print nums[0]# 删除列表元素del nums[0]'''nums[:]: [3, 5, 7, 8, 13, 20]'''print "nums[:]:", nums[:]# 列表脚本操作符print len([1, 2, 3]) # 3print [1, 2, 3] + [4, 5, 6] # [1, 2, 3, 4, 5, 6]print ['Hi!'] * 4 # ['Hi!', 'Hi!', 'Hi!', 'Hi!']print 3 in [1, 2, 3] # Truefor x in [1, 2, 3]: print x, # 1 2 3# 列表截取L = ['spam', 'Spam', 'SPAM!']print L[2] # 'SPAM!'print L[-2] # 'Spam'print L[1:] # ['Spam', 'SPAM!']# 列表函数&方法lst.append('append') # 在列表末尾添加新的对象lst.insert(2, 'insert') # 将对象插入列表lst.remove(1996) # 移除列表中某个值的第一个匹配项lst.reverse() # 反向列表中元素,倒转print lst.sort() # 对原列表进行排序print lst.pop(1) # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值print lstprint lst.count('obj') # 统计某个元素在列表中出现的次数lst.index('append') # 从列表中找出某个值第一个匹配项的索引位置,索引从0开始lst.extend(lst) # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)print 'End:', lst
七、字典
字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
# -*- coding:utf-8 -*-dit = {'name': 'Zara', 'age': 7, 'class': 'First'}dict1 = {'abc': 456}dict2 = {'abc': 123, 98.6: 37}seq = ('name', 'age', 'sex')# 访问字典里的值print "dit['name']: ", dit['name']print "dit['age']: ", dit['age']# 修改字典dit["age"] = 27 # 修改已有键的值dit["school"] = "wutong" # 增加新的键/值对print "dict['age']: ", dit['age']print "dict['school']: ", dit['school']# 删除字典del dit['name'] # 删除键是'name'的条目dit.clear() # 清空词典所有条目del dit # 删除词典dit = {'name': 'Zara', 'age': 7, 'class': 'First'}# 字典内置函数&方法cmp(dict1, dict2) # 比较两个字典元素。len(dit) # 计算字典元素个数,即键的总数。str(dit) # 输出字典可打印的字符串表示。type(dit) # 返回输入的变量类型,如果变量是字典就返回字典类型。dit.copy() # 返回一个字典的浅复制dit.fromkeys(seq) # 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值dit.get(dit['name']) # 返回指定键的值,如果值不在字典中返回default值dit.has_key('class') # 如果键在字典dict里返回true,否则返回falsedit.items() # 以列表返回可遍历的(键, 值) 元组数组dit.keys() # 以列表返回一个字典所有的键dit.setdefault('subject', 'Python') # 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为defaultdit.update(dict2) # 把字典dict2的键/值对更新到dict里dit.values() # 以列表返回字典中的所有值dit.clear() # 删除字典内所有元素
八、元祖
Python的元组(tuple)与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[];元组创建很简单,只需要在括号中添加元素,并使用逗号(,)隔开即可.
# -*- coding:utf-8 -*-tup1 = ('physics', 'chemistry', 1997, 2000)tup2 = (1, 2, 3, 4, 5)tup3 = "a", "b", "c", "d"# 访问元组print "tup1[0]: ", tup1[0] # physicsprint "tup1[1:3]: ", tup1[1:3] # ('chemistry', 1997)# 修改元组tup4 = tup1 + tup2print tup4 # (12, 34.56, 'abc', 'xyz')# 删除元组tup = ('tup3', 'tup', 1997, 2000)print tupdel tup# 元组索引&截取L = ('spam', 'Spam', 'SPAM!')print L[0] # spamprint L[1] # Spamprint L[2] # 'SPAM!'print L[-2] # 'Spam'print L[1:] # ['Spam', 'SPAM!']# 元组内置函数print cmp(tup3, tup2) # 比较两个元组元素。len(tup3) # 计算元组元素个数。max(tup3) # 返回元组中元素最大值。min(tup3) # 返回元组中元素最小值。L = [1, 2, 3, 4]print Lprint tuple(L) # 将列表转换为元组。
九、定义字符串
\n 表示换行
\t 表示一个制表符
\\ 表示 \ 字符本身
十、Unicode字符串
Python默认编码ASCII编码
# -*- coding: utf-8 -*-
十一、数字类型转换
int(x [,base]) 将x转换为一个整数
float(x ) 将x转换到一个浮点数
complex(real [,imag]) 创建一个复数
str(x) 将对象x转换为字符串
repr(x) 将对象x转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列s转换为一个元组
list(s) 将序列s转换为一个列表
chr(x) 将一个整数转换为一个字符
unichr(x) 将一个整数转换为Unicode字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
小编特从多篇文章整理结合,刚好一起学习python。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号