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

posted @ 2020-02-10 11:12  ch0bits  阅读(576)  评论(0编辑  收藏  举报