习题10、将"gloryroad"按照如下规则进行加密:字母对应的asscii码值进行加密,并且在码值前面加上码值长度,如g对应的码值为ord("g")=103,则字母g加密结果为3103 3是ascii的长度
"""
字母的加密结果: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))
python练习2020/06/17
最新推荐文章于 2024-09-21 23:21:04 发布