Python基础-数据类型
2018-07-06 01:19:17来源:博客园 阅读 ()
# 可变与不可变
# 可变:在值改变的情况下,id不变,则证明就是在修改原值,即可变类型
# 不可变:在值修改的情况下,id也跟着改变,则证明没法修改原值,而是重新申请内存空间。 即不可变类型
一、数字类型(init和float)
# 说明:Python中没有数字类型一说,通常我们所说的数字类型是int和float类型1、int型(整型)
# 用途: # 记录年龄、等级、及各种号码等 # 定义方式: level=10 # level=int(10)# 只能将纯数字字符串类型的数据转为init型
>>> res=int('188')
>>> print(res,type(res))
188 <class 'int'>>>> int('aaaaaaaasdfsadf')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'aaaaaaaasdfsadf'# 常用操作及内置方法
# 算出运算
# 比较运算
# 总结:
# 只能存一个值
# 不可变类型 >>> x=10
>>> print(id(x))
1413600448
>>> x=11
>>> print(id(x))
14136004642、float(浮点型)
# 用途 # 记录工资、身高、体重等 # 定义方式 weight=50.2 # weight=float(50.2)# 其他同int型
二、str(字符串类型)
# 用途:记录描述性质的状态,比如名字、爱好等 # 定义方式: 在单引号、双引号、三引号里包含的一串字符 str="'name=fred' age=15" # str=str("'name=fred' age=15")# 强调: # 三引号可多行 # 引号嵌套类的,里面单引号的,外面必须是双引号或三引号# 可以将任意数据类型转换为str类型
1、优先掌握的常用操作及内置方法
1)、按索引取值(正向取&反向取) 只能取,不能存
userinfo='root:x:0:0:root:/root:/bin/bash' print(userinfo[0]) # 索引号是从0开始的 rprint(userinfo[-1])h
userinfo[0]='b'TypeError: 'str' object does not support item assignment # str不支持修改原值
2)切片,从一个大的字符串里切除一个子字符串(顾头不顾尾,步长)
userinfo='root:x:0:0:root:/root:/bin/bash' print(userinfo[0:4]) # 步长不指定,默认是1root # 顾头不顾尾:[0:4]只能取到前四个字符,第五个字符没取到 print(userinfo[0:4:2]) # 取出索引0-4,步长为2进行取ro # 只能取到第一个字符和第三个字符,步长为2,中间隔了1个print(userinfo[6:]) # 从第六个字符开始取,到结束:0:0:root:/root:/bin/bash# 倒着切片,注意方向要一致print(userinfo[-1:-5:-1]) # 反向取值,一定要指定步长hsabprint(userinfo[-1::-1]) # 从反向第一个字符到最后一个,步长为1hsab/nib/:toor/:toor:0:0:x:toorprint(userinfo[::-1]) # 也可不指定头和尾,意指字符头到尾hsab/nib/:toor/:toor:0:0:x:toor
3)、切分split:把一个字符串按照某种分隔符切成一个列表
userinfo='root:x:0:0:root:/root:/bin/bash' print(userinfo.split(':')) # 按照冒号切分 ['root', 'x', '0', '0', 'root', '/root', '/bin/bash']# 注意:# split还有一个参数:最大切分次数,默认是-1,字符串中有多少分隔符,切几次 # 从左往右切userinfo='root:x:0:0:root:/root:/bin/bash'
print(userinfo.split(':',1))['root', 'x:0:0:root:/root:/bin/bash']# rsplit # 从右往左切userinfo='root:x:0:0:root:/root:/bin/bash'
print(userinfo.rsplit(':',3))['root:x:0:0', 'root', '/root', '/bin/bash']4)、join 将列表按照某种分隔符组合一个字符串
userinfo=['root', 'x', '0', '0', 'root', '/root', '/bin/bash'] userinfo_join='|'.join(userinfo) # 将userinfo列表按|,组合成一个字符串 print(userinfo_join) root|x|0|0|root|/root|/bin/bash # 组合的结果
5)、len长度
userinfo='root:x:0:0:root:/root:/bin/bash' print(len(userinfo))31 # 长度为31,所以只能到30 (索引是从0开始的,偷笑)
6)、成员运算in和not in,判断一个字符串是否存在于大的字符串
userinfo='root:x:0:0:root:/root:/bin/bash' print('bin' in userinfo) True print('3' in userinfo) False# not in 取反
7)、strip移除字符串左右两边的指定字符
userinfo='root:x:0:0:root:/root:/bin/bash....root' print(userinfo.strip('root')) :x:0:0:root:/root:/bin/bash.... #规则: # 1、从左边开始找指定字符,直到非指定字符为止 # 2、从右边开始找指定字符,直到非指定字符为止# 注意:# 1、strip() 默认是去除字符串左右两边的空格# 2、strip并不是修改原值,而是重新产生一个新值userinfo='root:x:0:0:root:/root:/bin/bash....root'89149536
print(id(userinfo))
userinfo=userinfo.strip('root')(id(userinfo))88587248# 了解(lstrip rstrip)# lstrip 移除字符串左边的指定字符# rstrip 移除字符串右边的指定字符8)、循环
userinfo='ro' for i in userinfo: print(i) r o# 按索引从头到尾循环
for i in range(0,len(userinfo)):
print(userinfo[i])
2、需要掌握的操作及内置方法
1)lower upper
userinfo='root:x' print(userinfo.upper()) #将字符串中的小写字母转换为大写 ROOT:X# lower 将字符串中的大写字母转换为小写
2)startswitch endswitch
userinfo='root:x' print(userinfo.startswith('ro')) # 判断字符串是否以指定字符开头 True print(userinfo.endswith('x')) # 判断字符串是否以指定字符结尾 True
3)、format的三种玩法
print('my name is %s my age is %s' %(18,'fred')) # %s的缺点,占位符和值只能按顺序匹配print('my name is {name} my age is {age}'.format(age=18,name='fred')) #format可以不用根据顺序匹配,指定了变量名 print('my name is {} my age is {}'.format(18,'fred')) # 此种方式,和%s意义一行 print('my name is {0}{0}{0} my age is {1}'.format(18,'fred')) # 可以按索引号多次匹配my name is 181818 my age is fred4)、replace
userinfo='root:x:0:0:root:/root:/bin/bash' print(userinfo.replace('root','fred')) # 如果不指定替换次数,默认全部替换 fred:x:0:0:fred:/fred:/bin/bash print(userinfo.replace('root','fred',1)) # 指定替换次数之后,从左往右依次替换N次 fred:x:0:0:root:/root:/bin/bash5)、isdigit
# 判断字符串是否为纯数字print('fred123'.isdigit())
False
print('1929'.isdigit())
True# 只有在字符串中包含的是纯数字的情况下才结果才为True
3、了解的操作及内置方法
1)、find,rfind,index,rindex,count
# find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。 # 从左向右检索
# 语法: str.find(str, beg=0, end=len(string))
# 参数
str 指定检索的字符串
beg 开始索引号 默认是0
end 结束索引号 默认是len(string)
# rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。
# index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常
# rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,可以指定可选参数[beg:end]设置查找的区间
# count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置
# 注意:
find类都是返回索引号
2)、center,ljust,rjust,zfill
print('我是分隔符'.center(50,'*')) **********************我是分隔符***********************print('我是分隔符'.ljust(50,'=')) 我是分隔符=============================================print('我是分隔符'.rjust(50,'0')) 000000000000000000000000000000000000000000000我是分隔符print('我是分隔符'.zfill(50)) 000000000000000000000000000000000000000000000我是分隔符# zfill() === rjust('0')
3)、end
# 指定字符串后面的空格数# 以九九乘法表为例
for x in range(1,10):
for y in range(1,x+1):
print('%sX%s=%s' %(x,y,x*y),end=' ')
print()1X1=1
2X1=2 2X2=4 # 字符结尾+2个空格
3X1=3 3X2=6 3X3=9
4X1=4 4X2=8 4X3=12 4X4=16
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49
8X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64
9X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81
str总结:
# 1、str为不可变类型 # 2、是有序的(有索引) # 3、只能存一个值
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash