Python学习Python 变量类型
Posted HeiDi_BoKe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习Python 变量类型相关的知识,希望对你有一定的参考价值。
目录
Pythone变量类型
变量赋值
标准数据类型
数据类型转换
Python 变量类型
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
变量赋值
Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
[root@tanbaobao myPy]# vi variable.py #!/usr/bin/python3.8 # -*- conding:UTF-8 -*- name = "thy" sex = 20; weight = 100.0; print(name) print(sex) print(weight) [root@tanbaobao myPy]# python3.8 variable.py thy 20 100.0
另外还有多个变量一起赋值(多变量赋值)。
# 创建一个整型对象,值为2,三个变量被分配到相同的内存空间上。 >>> a=b=c=2 >>> print a 2 # 两个整型对象 1 和 2 分别分配给变量 a 和 b,字符串对象 "thy" 分配给变量 c。 >>> a,b,c=1,2,"thy" >>> print(a) 1 >>> print(b) 2 >>> print(c) thy
标准数据类型
Python 定义了一些标准类型,用于存储各种类型的数据。
Python有五个标准的数据类型:
是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。当你指定一个值时,Number对象就会被创建。
可以使用del语句删除对象的引用
del var1[,var2[,var3[....,varN]]]]
# 删除单个或多个 del var del var_a, var_b
数字类型有四种:
- int(有符号整型)
- long(长整型[也可以代表八进制和十六进制])
- float(浮点型)
- complex(复数)
- 长整型也可以使用小写 l,建议使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。
- Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
PS:long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代。
字符串或串(String)是由数字、字母、下划线组成的一串字符。
s="a1a2···an"(n>=0)
python的字串列表有2种取值顺序:
- 从左到右索引默认0开始的,最大范围是字符串长度少1
- 从右到左索引默认-1开始的,最大范围是字符串开头
如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。
>>> s = \'abcdef\' >>> s[1:5] \'bcde\'
上面的结果包含了 s[1] 的值 b,而取到的最大范围不包括尾下标,就是 s[5] 的值 f。
加号(+)是字符串连接运算符,星号(*)是重复操作。
[root@tanbaobao myPy]# cat demo02.py #!/usr/bin/python3.8 # -*- conding:UTF-8 -*- str = \'Hello World!\' print(str) print(str[0]) print(str[2:5]) print(str[2:]) print(str[:-2]) print(str * 2) print(str + "test") [root@tanbaobao myPy]# python3.8 demo02.py Hello World! H llo llo World! Hello Worl Hello World!Hello World! Hello World!test
>>> str1 = \'hello tanbaobao\' >>> str1[:6] \'hello \' >>> str1[6] \'t\' >>> str1[:6] + \'add\' + str1[6:] \'hello addtanbaobao\'
str()常用函数:
a)字符串处理字母的函数:
.upper() #全部转为大写字母 .lower() #全部转为小写字母 .title() #首字母大写 .capitalize() #首字母大写 .swapcase() #大小写相互转换
.lstrip() #去掉左边的空格
.rstrip() # 删除右边,也就是末尾的空格
.strip([chars]) # 去掉左右两边的空格,中间的空格不作处理。默认不带参数是去掉空格,如果带参数,则去掉指定的chars
实例
# capitalize()将首字母转换为大写 >>> str2 = \'xiaoxiao\' >>> str2.capitalize() \'Xiaoxiao\' # casefold()将字符串转换为小写 >>> str2 = "DFNCDOSVNxncn" >>> str2.casefold() \'dfncdosvnxncn\' # center(width)将字符串填充,使用空格来填充至长度width的新字符串
# ljust(width)左对齐,rjust(width)右对齐
>>> str2.center(20) \' DFNCDOSVNxncn \' # endswith(sub)检查字符是否是以sub字符结束,如果是返回True,不是则返回False
# startswith(prefix[,start][,end])检测是否以什么开始
>>> str2.endswith(\'c\') False >>> KeyboardInterrupt >>> str2.endswith(\'n\') True # expandtabs(tabsize=8)将字符中的\\t符转换为空格,不指定参数,默认空格数为8 >>> str3 = \'i\\tlove\\tanbaobao!\' >>> str3.expandtabs() \'i love anbaobao!\'
b)关于查找字符串相关的函数:
.find(sub,start[,end]) #查找指定的字符串,没有则返回-1,找到会返回索引位置 ,find(sub,start,end) .rfind(sub,start[,end]) #从字符串的右边开始查找
.lfind(sub,start[,end]) # 从字符串左边开始查找
.count() #获取指定字符在该字符串中出现的次数
.index() #和find()功能类似,但是找不指定字符会报错,而find()则会返回-1 (也有rindex,lindex)
find方法和index方法有三个参数, sub=想查找的字符,start=指定位置,end=结束位置
实例
# count(sub,start[,end])返回sub中重现的字符次数,start和end表示参数范围 >>> str2.count(\'n\') 2 # find(sub,start[,end])检查sub是否包含在字符串中,如果有则返回索引值,没有则返回-1 >>> str3.find(\'cr\') -1 >>> str3.find(\'ao\') 10 # index(sub,start[,end])和find方法一样,但是如果sub不在字符串内会报异常 >>> str3.index(\'b\') 9 >>> str3.index(\'t\') Traceback (most recent call last): File "<pyshell#22>", line 1, in <module> str3.index(\'t\') ValueError: substring not found
c)与字符串判断相关:
.isalnum() #判断字符串是否全部是数字或者字母 .isupper() #判断是否全是大写 .islower #判断是否全是是小写 .isalpha() #判断是否全是字母 .isdecamal() #判断字符串是都只包含十进制字符 定义一个十进制字符串,只需要在字符串前面加个“u”前缀即可 .isdigit() #判断是否全部是数字 .isidentifier() #判断变量名是否是python的标识符 .isspace() #判断是否全是空格
.istitle() # 符合标题,首字母大写,返回True,否则返回False
PS:返回是布尔类型
注意:
join():以字符串作为分隔,插入到sub中所有字符之间
>>> str4 = \'Tanbaobao\' >>> str4.join(\'123\') \'1Tanbaobao2Tanbaobao3\'
partition():找到子字符串sub,把字符分为3个元组(pre_sub,sub,fol_sub),如果字符串不包含sub则返回源字符串(\'原字符串\',\'\',\'\')
>>> str6 = \'i love tanbaobao\' >>> str6.partition(\'ve\') (\'i lo\', \'ve\', \' tanbaobao\')
replace(old,new[,count]):将旧字符串替换为新字符串
>>> str6.replace(\'i\',\'I\') \'I love tanbaobao\'
split(sep=None,maxsplit=-1):不带参数默认以空格为分隔符切片字符串,如果maxsplit有设置则仅分隔maxsplit个子字符串,返回切片后的子字符串拼接列表
>>> str6 \'i love tanbaobao\' # 默认按空格切 >>> str6.split() [\'i\', \'love\', \'tanbaobao\'] # 按i切,将i去除了 >>> str6.split(\'i\') [\'\', \' love tanbaobao\'] # 按a来切,a去除 >>> str6.split(\'a\') [\'i love t\', \'nb\', \'ob\', \'o\']
translate(table):根据table的规则(可以由str.maketrans(\'a\',\'b\')定制),转换字符串中的字符
>>> str7 \' aaaassss ddff\' # 将s转换为b >>> str7.translate(str.maketrans(\'s\',\'b\')) \' aaaabbbb ddff\' # 输出的是ASCII编码 >>> str.maketrans(\'s\',\'b\') {115: 98}
zfill(width):返回长度为width的字符串,原字符串右对齐,前边用0填充
>>> str3.zfill(30) \'00000000000000i\\tlove\\tanbaobao!\'
字符串格式化
a)位置参数
>>> "{0} love {1}.{2}".format("I","Love","tanbaobao") \'I love Love.tanbaobao\'
b)关键字参数
>>> "{a} love {b}.{c}".format(a="I",b="Love",c="tanbaobao") \'I love Love.tanbaobao\'
c)将位置、关键字参数综合使用(位置参数一定要在关键字参数之前)
>>> "{0} love {b}.{c}".format("I",b="Love",c="tanbaobao") \'I love Love.tanbaobao\'
d)格式化符号意义
>>> "{{0}}".format("a") \'{0}\' >>> "{{0}}".format("不打印") \'{0}\' # .1f保留1位小数,f表示四舍五入 >>> \'{0:.1f}{1}\'.format(22.222,\'GB\') \'22.2GB\' >>> \'{0:.1f}{1}\'.format(22.252,\'GB\') \'22.3GB\'
实例
# 格式化字符 >>> \'%c\' %97 \'a\' >>> \'%c %c %c\' %(97,98,99) \'a b c\' # 格式化字符串 >>> \'%s\' % \'i love tanbaobao\' \'i love tanbaobao\' # 格式化整数 >>> \'%d + %d = %d\' % (4,5,4+5) \'4 + 5 = 9\'
e)格式化操作辅助命令
# m总长度,n保留多少位 >>> \'%5.1f\' % 22.222 \' 22.2\' >>> \'%.2e\' % 22.222 \'2.22e+01\' >>> \'%10d\' % 5 \' 5\' # 左边对齐 >>> \'%-10d\' % 5 \'5 \' >>> \'%+10d\' % 5 # 右边对齐 \' +5\' >>> \'%+10d\' % +5 \' +5\' >>> \'%+10d\' % -5 \' -5\'
f)字符串转义字符
List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型。列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
加号 + 是列表连接运算符,星号 * 是重复操作。和字符串的类似。
实例1
[root@tanbaobao myPy]# vi demo03.py #!/usr/bin/python3.8 # -*- conding:UTF-8 -*- list = [\'Hello\',20,155.50,\'thy\',100.5] addlist = [\'123\',\'thy\'] print(list) print(list[0]) print(list[1:3]) print(list[2:]) # 输出第三个及后面所有 print(list[:-2]) # 从左边开始打印,不包括结尾索引-2(也就是到结尾-2索引截止) print(list[-2:]) # 从右边开始打印,包括开始索引-2 print(addlist * 2) # 输出addlist两次 print(list + addlist) # 打印组合列表 [root@tanbaobao myPy]# python3.8 demo03.py [\'Hello\', 20, 155.5, \'thy\', 100.5] Hello [20, 155.5] [155.5, \'thy\', 100.5] [\'Hello\', 20, 155.5] [\'thy\', 100.5] [\'123\', \'thy\', \'123\', \'thy\'] [\'Hello\', 20, 155.5, \'thy\', 100.5, \'123\', \'thy\']
实例2
>>> member = [\'thy\',\'谭宝宝\',3.1415926,[1,3,5]] >>> member [\'thy\', \'谭宝宝\', 3.1415926, [1, 3, 5]] >>> member.append(\'zs\') >>> member [\'thy\', \'谭宝宝\', 3.1415926, [1, 3, 5], \'zs\'] >>> len(member) 5
向列表添加元素:append(),extend(),insert()
a)append():一次只能添加一个元素,添加一个以上的元素会报错
b)extend():一个列表来扩展一个列表。需要注意格式要用[]列表的标识符括起来
c)insert():在指定位置插入元素,索引从0开始
从列表中获取元素单个():通过索引值来获取对应的元素,列表索引值都是从0开始
实例3
# 一个简单的数据交换 >>> member [\'thy\', \'谭酱\', \'谭宝宝\', 3.1415926, [1, 3, 5], \'zs\', \'xw\', \'zl\'] >>> member[0] \'thy\' >>> member[1] \'谭酱\' >>> temp = member[0] >>> member[0] = member[1] >>> member [\'谭酱\', \'谭酱\', \'谭宝宝\', 3.1415926, [1, 3, 5], \'zs\', \'xw\', \'zl\'] >>> member[1] = temp >>> member [\'谭酱\', \'thy\', \'谭宝宝\', 3.1415926, [1, 3, 5], \'zs\', \'xw\', \'zl\']
从列表删除元素:remove(),del(),pop():
a)remove():前提是知道要移除的元素在列表中有存在:
>>> member [\'谭酱\', \'thy\', \'谭宝宝\', 3.1415926, [1, 3, 5], \'zs\', \'xw\', \'zl\'] >>> member.remove(3.1415926) >>> member [\'谭酱\', \'thy\', \'谭宝宝\', [1, 3, 5], \'zs\', \'xw\', \'zl\'] # 如果不存在,会报错 >>> member.remove(2.1415926) Traceback (most recent call last): File "<pyshell#21>", line 1, in <module> member.remove(2.1415926) ValueError: list.remove(x): x not in list
b)del()语句:del不是方法,是一个语句:
# del后面直接跟member对象,会直接将member列表才能够内存中删除 >>> member [\'谭酱\', \'thy\', \'谭宝宝\', [1, 3, 5], \'zs\', \'xw\', \'zl\'] >>> del member[3] >>> member [\'谭酱\', \'thy\', \'谭宝宝\', \'zs\', \'xw\', \'zl\']
c)pop():从列表中取出元素并返回给你,默认从最后一个元素删除,如果要指定删除元素,在pop()中指定参数索引
# 默认从元素最后一个删除,每次只删除一个元素 >>> member [\'谭酱\', \'thy\', \'谭宝宝\', \'zs\', \'xw\', \'zl\'] >>> member.pop() \'zl以上是关于Python学习Python 变量类型的主要内容,如果未能解决你的问题,请参考以下文章