数据类型只需要记住一个方法,既:bit_length方法:
它是用来计算一个数字至少要用几位二进制码来表示,
如1的二进制码为00000001,那么它的bit_length即为1
而3的二进制码为00000011,那么它的bit_length即为2
1 i = 6
2 len_i = i.bit_length()
3 print(len_i) #结果为3
布尔类型也有bit_length方法,True的结果为1,False的结果为0
1 print(True.bit_length()) #结果为1
2 print(False.bit_length()) #结果为0
可以用字符串后面跟下标的方式来进行索引,而下标从0开始,至字符串的 len-1 格式为:str[index],如下:
1 s = 'fuyong'
2 print(s[0]) #结果为 F
3 print(s[3]) #结果为 o
可以用字符串后面跟‘’下标:下标‘:步长’的方式来对字符串进行切片,格式为 str[index1:index2:step],如下:
1 s = 'fuyong'
2 print(s[0:4]) #结果为fuyo 0 是指从第一个开始切,而 4 代表从索引值为3 (即第四个字母)的地方结束,步长不写的话默认为1,即连续切
3 print(s[:4]) #结果为fuyo 如果第一个索引值不写,默认从最开始的地方切
4 print(s[1:]) #结果为uyong 如果第二个索引值不写,默认从第一个索引值对应的字符开始一直切到末尾
5 print(s[:]) #结果为fuyong 如果两个索引值都不写,默认从开始到末尾
6 print(s[3:-1]) #结果为 n 第二个索引值为-1的话即表示最后一个字符,也就是说切分从第五个值开始到最o后一个字符之前的一个数
7 print(s[0:4:2]) #结果为fy 最后一个2代表步长为2,即从 0-4 的之间每隔一个切一个
8 print(s[4:0:-1]) #结果为noyu 步长为-1 代表倒着数,此时第一个索引值一定要比第二个索引值大。注意:此时是取到第二个索引值对应的字符的前一位
9 print(s[4:0:-2]) #结果为ny,步长为-2,代表倒着数,每隔1个取一个进行切
字符串类型的方法比较复杂也比较重要。让我们来总结一下:
capitalize() 方法:
此方法是用于将字符串的首字母转为大写,如下:
1 s = 'fuyong'
2 print(s.capitalize()) #结果为 Fuyong
title()方法:
此方法的作用是将用空格、数字以及其他符号分开的单词或者其他字符串的首字母变成大写,如下:
1 print('fu yong'.title()) #结果为 Fu Yong
2 print('fu*yong'.title()) #结果为 Fu*Yong
3 print('fu3yong'.title()) #结果为 Fu3Yong
4 print('fu%#yong'.title()) #结果为 Fu%#Yong
swapcase()方法:
此方法是用于将字符串的大小写翻转,如下:
print('fuyong'.swapcase()) #结果为FUYONG
print('FuYong'.swapcase()) #结果为fUyONG
upper() 方法和 lower()方法:
这两种方法的作用是将字符串全部转换为大写(upper)或小写(lower),>如下:
1 print('fuyong'.upper()) #结果为FUYONG
2 print('Fu Yong'.lower()) #结果为fu yong
此方法一般用于在不区分大小写的情况下验证用户输入的字符串,如:
1 name = input('请输入您的帐号:')
2 password = input('请输入您的密码')
3 if name.upper() == 'FUYONG' and password.lower() == 'fuyong123':
4 print('恭喜您,登录成功!')
# 运行之后用户输入的帐号为 ‘Fuyong’、‘fuYong’……密码输入‘fUyOnG123’ 、‘FuYoNG123’均可登录成功
startswith()和endswith()方法:
这两中方法是用来判断字符串以什么开头或者结尾,用法如下:
1 print('fuyong'.startswith('fu')) #结果为True
2 print('fuyong'.endswith('g')) #结果为True
strip() 、lstrip()、rstrip()方法:
这三种方法的作用是删除左右两边的空格或者其他符号,可以指定只删除左边的或者只删除右边的,如下:
1 s1 = ' fuyong '
2 print(s1.strip()) # 结果为‘fuyong# ’ 默认是将字符串两边的空格全部去掉
3
4 s2 = '***fuyong**'
5 print(s2.strip('*')) #结果为‘fuyong’ 可以指定删除的内容
6
7 print(s2.lstrip('*')) #结果为‘fuyong**’ 可以指定只删除左边的* 默认是删除左边 空格
8 print(s2.rstrip('*')) #结果为‘***fuyong’可以指定只删除右边的* 默认是删除右边 空格
replace()方法:
此方法是用来将字符串里的某些字符替换为新的字符,默认替换范围为整个字符串,也可以指定只替换几个。如下:
1 print('fu yong'.replace('yong','sir')) #结果为 ‘fu sir’
2 print('fu yong'.replace(' ',' xiao ')) #结果为 ‘fu xiao yong’ 参数对于空格同样适用
3 print('abacad'.replace('a','x',1)) #结果为 'xbacad' 只替换第一个
split()方法:
此方法用于将一串字符串按要求进行分割,然后将分割结果返回存进一个列表中,默认以空格分割、且范围为整个字符串,也可以指定以第几个符号分割,如下:
1 print('fu yong'.split()) #结果为['fu', 'yong']
2 print('fuyong'.split('y')) #结果为['fu', 'ong']
3 print('fu|yong'.split('|')) #结果为['fu', 'yong']
4.print('fu*yong*ok') #结果为['fu', 'yongok'
count()方法:
此方法用来统计一个指定字符或者一串字符串在一串大字符串种出现的次数,没有的话就返回0如下:
1 print('fuyong'.count('fu')) # 结果为 1
2 print('hello'.count('l')) # 结果为 2
3 print('world'.count('f')) # 结果为 0
find()方法:
此方法用来查询一个指定字符或者一串字符串在一大串字符串中出现的位置索引,没有的话返回-1
1 print('fuyong'.find('u')) #结果为 1
2 print('fuyong'.find('yon')) #结果为 2
3 print('fuyong'.find('x')) #结果为 -1
index()方法:
与find()方法类似,此方法用来查询一个指定字符或者一串字符串在一大串字符串中出现的位置索引,只是,如果搜索不到的话会报错
1 print('fuyong'.index('u')) #结果为 1
2 print('fuyong'.index('yon')) #结果为 2
3 print('fuyong'.index('x')) #这个找不到,会报错 ValueError: substring not found
format()方法:
此方法主要用于格式化输出,实例如下:
1 #第一种用法,{ } 里均为空,str.format()括号里的值跟str里{}一一对应
2 s1 = '{},欢迎您!现在是北京时间{}点,这里是{}的空间,点击查看{}的博客'
3 m1 = s1.format('yonghu',18,'fuyong','fuyong')
4 print(m1)
5
6 #第二种用法,{ }里可以写上索引值,会根据索引来索取str.format() 里的值,可以重复索取
7 s2 = '{0},欢迎您!现在是北京时间{1}点,这里是{2}的空间,点击查看{2}的博客'
8 m2 = s2.format('yonghu',18,'fuyong')
9 print(m2)
10
11 #第三种用法,{ }里写上健值,会根据健值来索取str.format()里的值,可以重复索取
12 s3 = '{user},欢迎您!现在是北京时间{time}点,这里是{name}的空间,点击查看{name}的博客'
13 m3 = s3.format(user = 'yonghu',time = 18,name = 'fuyong')
14 print(m3)
15
16 #输出结果均为: yonghu,欢迎您!现在是北京时间18点,这里是fuyong的空间,点击查看fuyong的博客
center()方法
此方法主要用来让一段字符串居中显示,并且两边可以填充内容以及指定总内容的长度,如下:
print('info'.center(30,'*'))
print('fuyong'.center(30,'-'))
print('29'.center(30,'-'))
print('end'.center(30,'*'))
输出结果为:
isalnum()、isalpha()、isdigit()方法:
这三种方法用来判断一个字符串是否全部是字母或者数字组成、是否全部为字母组成,是否全部为数字组成
主要用来判断用户输入的东西,实例如下:
1 while True:
2 name = input('请输入您要注册的用户名(只能由字母组成):')
3 password = input('请输入您的注册密码(只能由字母和数字组成)')
4 phonenum = input('请输入您的电话号码(只能由数字组成)')
5
6 if name.isalpha() and password.isalnum() and phonenum.isdigit():
7 break
8 else:
9 print('输入的格式有误,请重新输入')
extandtabs()方法
此方法默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。如下:
(基本没什么卵用)
1 user1 = 'fuyong\thenan'
2 user2 = 'lixiang\tzhejiang'
3 user3 = 'zhangsan\theilongjiang'
4
5 print(user1.expandtabs())
6 print(user2.expandtabs())
7 print(user3.expandtabs())
输出内容为:
len():
计算一个字符串的长度
1 print(len('fuyong')) #结果为6
2 print(len('fuyong123')) #结果为9
jion():
用指定字符串进行拼接
1 s = 'fuyong'
2 print('*'.join(s)) # 结果:f*u*y*o*n*g
3 print(' '.join(s)) # 结果:f u y o n g
4 print('__'.join(s)) # 结果:f__u__y__o__n__g
参见本人另一篇博客http://www.cnblogs.com/fu-yong/p/8066422.html
里面详细讲述了列表的常用方法及操作
元组是用括号罗列一些元素,功能及方法与列表类似,只是元组里面的元素不能修改,称为“受限的列表”
然而,当元组里面的元素包括一个或者多个列表的时候,列表内的元素是可以修改的,称为‘儿子不能修改,孙子可以修改’ jiong。。。。。。
参见本人另一篇博客http://www.cnblogs.com/fu-yong/p/8073912.html
里面详细讲述了字典的常用方法及操作
参见本人另一篇博客http://www.cnblogs.com/fu-yong/p/8086280.html
里面详细讲述了集合的常用方法及操作