PTA的Python练习题(七)
不知不觉一个星期过去了,继续从 第3章-12 求整数的位数及各位数字之和 开始做题
1.
我原来想用题目漏洞做题的,不过想想还是算了自己写个完整的:
a=int(input())
b=len(str(a))-1
d=b+1
count=0
for i in range(0,d):
c=a/(10**b)
c=int(c)
e=c-1
count=count+c
a=a-10**e*c
b=b-1
print('{} {}'.format(d,count))
这道题的int类型是不能直接求位数的,会报错,需要强制类型转换成str算length(代码第二行)
2.
s = input()
ss = ''
for c in s:
if "A" <= c <= "Z":
ss += chr(155 - ord(c))
else:
ss += c
print(ss)
知识点:ord()函数。返回对应的ascii码值,Z(90)+A(65)=155
chr()函数,返回对应的字符
3.
上面的代码拿下来稍微修改一下:
s = input()
ss = ''
for c in s:
if c=='#':
break
if "A" <= c <= "Z":
ss += chr(ord(c) + 32)
else:
ss += c
print(ss)
很简单大小写的ASCII码差32
[Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你