kata_2格式化输出,字符串字母统计,质数

 

按格式输出:

 

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

 

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值