【1.9】数据类型的魔法--数字--字符串
记住常用的几个方法,
在使用pycharm 工具时,就用ctrl + 鼠标左键 就可以找到他的方法 当然也有提示
type 可以看变量指的空间 存储的值 的类型
a = “abcd”
print (type(a))
结果就是 字符串类型
<type 'str'>
注意方法后面 的 括号 ()
1、数字 int
数字 在2 里面 整型 和整型 运算时整型 1/2 =0
在3里面就是 0.5
1、int 运算魔法
改变变量的类型
a = "a"
a1 = int(a,base=16)
就是将a 依 16进制 运算 然后将其整型值给 a1 结果是10
a = "0011"
b = int(a,base=8)
print b
b就是 9
a = "0011"
b = int(a,base=16)
print b
b就是 17
2、计算该int 的二进制数的位数,前面的0 不计算
a = 3
a1 = a.bit_length()
2、字符串类型 string
字符串有很多的方法,大概五六个方法
1、首字母大写
a = “abc”
b = a.capitalize() b=“Abc”
2、所有字符小写
英文可以用 lower
所有包含未知(法国 德国或者其他国家)的用 casefold
3、在指定宽度居中显示,并按指定方式填充,默认填充空白
center(20,“*”)
ljust
rjust
zfill 基本不用 默认右对齐 填充0
4、encode decode
5、endswith(“asc”),startswith(“abc”)
以什么开始,以什么结尾
6、计算某字符串在该字符串中出现的次数,当然也有指定 起始 下标index
count(“ex”,4,20)
7、find
找到某字符串在该字符串中的第一次出现的下标 index 可以指定寻找的下标范围
8、index 和 find一样 (只是find 给的返回值是 -1 index 没有找到就报错 该字符串不在目标字符串)
9、format 格式化
test =‘i am {name},age {age}’
v = test.format(name=“tom”,age=18)
print v
结果就是 i am tom,age 18
test1 =‘i am {0},age {1}’
v1 = test1.format(“tom”,18)
print v1
结果就是 i am tom,age 18 这个就是按照顺序写入,才显示正确
10、 format_map
test2 =‘i am {name},age {age}’
v2 = test.format_map({"name" : “tom”,"age" : 18})
print v2
结果就是 i am tom,age 18
这个就是 format 是按照顺序或者 占位符的名字 = 号来输入
而format_map 是按照字典来输入的,保证名称对应正确就好
11、检查字符串全是字母和数字
a =“abcdefgh234——!@#¥¥”
print a.isalnum()
结果是False
a =“abcdefgh234”
print a.isalnum()
结果是Ture
isalnum()
12、expandtabs 找\t 就是找tab 找到后按照指定的位数 n ,\t 前面的 m 个字符就保留,然后再填满 n-m 个空格
找到 \t 就进行断句和添加空格
a = “abcdefgh\t12asdfa\tABC”
v=a.expandtabs(8)
print v
结果: abcdefgh 12asdfa ABC
abcdefgh 8个空格(8-0) 12asdfa 一个空格(8-7) ABC
a = "username\temail\tpassword\nyaoming\tyaoming@qq.com\t123456\nyaoming\tyaoming@qq.com\t123456\nyaoming\tyaoming@qq.com\t123456\nyaoming\tyaoming@qq.com\t123456\n"
v=a.expandtabs(20)
print v
结果就是:可以成为一个表格
username email password
yaoming yaoming@qq.com 123456
yaoming yaoming@qq.com 123456
yaoming yaoming@qq.com 123456
yaoming yaoming@qq.com 123456
只包含字母就是True 或者就是False
14、isdigit isdecimal(3) isnumeric 就是数字 阿拉伯 中文 判断数字 主要文件操作和运算
用的多的 就是isdecimal 他判断的数字做运算比较多 isnumeric就是中文
判定当前变量指定的存储空间中的值是否是数字 是就True
当然 isdigit 就是 可以判断 “②” 是True 但是isdecimal 就是False
15、isidentifier (3) 意思就是确认是否是正确的变量名 (字母 数字 下划线)
16、islower 判断全是小写 lower 变小写 这个主要用在验证码 判断 无论你输入大小写 我把你输入变小写 然后在比较
当然还有 isupper 和 upper
17、isprintable 能否全部原样打印 就是True 如有\t \n 这些不能显示的就判断为False
18、isspace 是否全部是空格 不是包含 如果字符为空就是没有空格“” 就是False
19、title istitle
变成标题 判断是否是标题
an = "wo ai ni, china"
print an
print an.istitle()
a=an.title()
print a
print a.istitle()
结果是:
wo ai ni, china
False
Wo Ai Ni, China
True
20、join 加入字符到原来的字符串
a = "你是风儿我是沙"
b = "-"
print b.join(a)
结果:你-是-风-儿-我-是-沙
21、lstrip rstrip strip 最多匹配处理 移除
默认处理空格的 ,删除两边的空格 左右 全部 如空格 \n \t等
如果需要处理其他字符 就可以这样 lstrip(“abxcd”)
找到原字符串中的连续字符 abxcd 全部去掉 没有连续就去掉单个 一个都不匹配就不去掉 什么都不写 就默认去掉空格
22、对应替换 maketrans translate
a = “12345“
b = “aeiou"
new = str.maketrans(a,b)
v = "123465789234879865546"
new_v = v.translate(new)
a.partition("s") 找到第一个s 分割为三部分 s前一部分 s 一部分 是后一部分
a.rpartition(“s”) 找到最后一个s 分割为三部分
a.split("s",n) 默认全分开 有 n 就分割 n 次 分后就没有s
a.rsplit("s",n) 从右边开始找s 并分割 n次
正则表达式 也可以分割 你可以指定 是否需要分割的元素
24、splitlines 分割 按换行符号分割 参数的True False 是判断分割 是否保留换行符号\n
a = “ACDFAS\narerqegvfd\nsadafeqwg\nDFASDGF”
25、startswith endswith
26、swapace 大写转换
3、列表
五六个方法
4、元组
基本没有
5、字典
四五个方法
a = raw_input(">>>")
b = a.split("+")
c = int(b[0])+int(b[1])
print a
print b
print c
5+9
['5', '9']
14
a = "abcebdebdea"
b = a.strip("a")
print a
print b
abcebdebdea
bcebdebde
浙公网安备 33010602011771号