python练习2020/06/17

习题10、将"gloryroad"按照如下规则进行加密:字母对应的asscii码值进行加密,并且在码值前面加上码值长度,如g对应的码值为ord("g")=103,则字母g加密结果为3103  3ascii的长度
"""
字母的加密结果:str(ord(i))
长度:len(str(ord(i))
"""

def encode_password(s):
    if not isinstance(s,str):
        return False
    result=[]
    for i in s:
        temp=str(len(str(ord(i))))+str(ord(i))
        result.append(temp)
    return ''.join(result)

print(encode_password('gloryroad'))

习题11、将上题中的加密字符串进行解密

"""
从0坐标开始:index=0
(   "3    103         3    108  3  111  3  114  3  121  3   114  3  111  2  97  3 100")
坐标 0   chr(103)      4        8       12      16      20       24      28     31
求出chr(103)解密成字母:s[index+1:index+3+1]->>s[1:4]->>'103'->>chr(int('103'))
"""


def decode_password(s):
    if not isinstance(s,str):
        return False
    result=[]
    index=0
    length=len(s)
    while index< length:
        if s[index]=='3':
            temp=s[index+1:index+3+1]
            result.append(chr(int(temp)))
            index+=4 #下一次就从+4的位置开始
        else:
            temp=s[index+1:index+2+1]
            result.append(chr(int(temp)))
            index+=3
    return ''.join(result)

print(decode_password("31033108311131143121311431112973100"))

习题12:统计首字母是“a”的单词的个数
s = "akk alklk bkk aaddd"
result=0
for i in s.split():
    if i[0]=='a':
        result+=1

print(result)


习题13:单词顺序翻转
s='i am a boy'
s=s.split()
result=[]
for i in s[::-1]:
    result.append(i)

print(''.join(result))
习题14:单词顺序翻转且单词本身翻转

s='i am a boy'
result=''
for i in s[::-1]:
    result+=i

print(result)

#2
s='i am a boy'
s=list(s)
s.reverse()
print(''.join(s))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值