按格式输出:
return '%d/%d'%(count_error,length_s)
格式 描述
%% 百分号标记
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%f 浮点数字(用小数点符号)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中
2.可以指定所需长度的字符串的对齐方式:
< (默认)左对齐
> 右对齐
^ 中间对齐
= (只用于数字)在小数点后进行补齐
print('dec=%d, oct=%o, hex=%x'%(num,num,num))
二、format()函数
>>> print '{0} {1}'.format('hello','world')
hello world
>>> print '{} {}'.format('hello','world')
hello world
>>> print '{0} {1} {0}'.format('hello','world')
hello world hello
将数字3按照二进制输出
>>> print '{0:b}'.format(3)
11
>>> print '{0:%}'.format(3.15)
315.000000%
三.字符串中值得替换
Python maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
str.maketrans(intab, outtab)
注:两个字符串的长度必须相同,为一一对应的关系。
Python translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。
str.translate(table[, deletechars]);
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from string import maketrans # 必须调用 maketrans 函数。
intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)
str = "this is string example....wow!!!";
print str.translate(trantab);
#以上实例输出结果如下:
th3s 3s str3ng 2x1mpl2....w4w!!!
去除字符串中的 'x' 和 'm' 字符:
#!/usr/bin/python
str = "this is string example....wow!!!";
intab = "aeiou"
outtab = "12345"
trantab = ''.maketrans(intab, outtab)
print(str.translate(trantab))
trantab = ''.maketrans(intab, outtab, 'xm')
print( str.translate(trantab))
th3s 3s str3ng 2x1mpl2....w4w!!!
th3s 3s str3ng 21pl2....w4w!!!
统计字符串中某些字母的个数:
1.s为字符串,统计字符串中除a-m字母之外的其他字母的个数 ,将a-m用空字符代替,求其长度
return "{}/{}".format(len(sub("[a-m]",'',s)),len(s))
将不在a-m的所有字母放入新的列表求其长度
return "{}/{}".format(len([x for x in s if x not in "abcdefghijklm"]), len(s))
解析:
b='123456789'
[x for x in b if x not in "123"]
<<<['4', '5', '6', '7', '8', '9']
def printer_error(s):
errors = 0
count = len(s)
for i in s:
if i > "m":
errors += 1
return str(errors) + "/" + str(count)
return '{}/{}'.format(sum(color > 'm' for color in s), len(s))
解析:
a=[1,2,3,4,5,6,7,8,9]
list(x>5 for x in a)
<<<[False, False, False, False, False, True, True, True, True]
sum(x>5 for x in a)
<<<4
return str(len(re.findall('[n-z]', s))) + "/" + str(len(s))
nom = len([c for c in s if c not in 'abcdefghijklm'])
return '{}/{}'.format(nom, len(s))
判断是否为质数,如果是,给出所有公约数
def divisors(integer):
divisors=[x for x in range(2,int(integer*0.5)+1) if integer%x==0]
return divisors if divisors else "%d is prime"%integer