一、Python中isupper() 方法检测字符串中所有的字母是否都为大写。
上代码:
if i.isupper() and i != 'Z': #判断是不是大写的情况(但是排除了“Z”的情况)
二、isdigit()函数的用法:
- 判断单个字符是否为数字
- 判断字符串中是否仅含有数字
上代码:
if i.isdigit(): #先判断数字的情况,如果是数字,直接加在result的后面
res.append(i)
三、ord()函数主要用来返回对应字符的ascii码;
四、chr()主要用来表示ascii码对应的字符,可以用十进制,也可以用十六进制。
目标:实现一种密码变换算法。九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字。而密码中出现的大写字母则变成小写之后往后移一位。例外:Z 往后移是 a。
完整代码:
while True:
try:
str = input()
res = ""
for i in str:
if i.isdigit(): #先判断数字的情况,如果是数字,直接加在result的后面
res = res +i
elif i.isupper() and i != 'Z': #在判断是不是大写的情况(但是要排除“Z”的情况),如果是大#写字母,则先把大写字母转化成小写,再转成ascii码+1,在转成对应字符。
res = res + chr(ord(i.lower()) + 1)
elif i == 'Z': #然后考虑“Z”的情况,Z直接映射成“a”
res = res + 'a'
else:
if i in 'abc': #最后是把密码中出现的小写字母都变成九键键盘对应的数字abc--2, def--3, #ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9
res = res + '2'
elif i in 'def':
res = res + '3'
elif i in 'ghi':
res = res + '4'
elif i in 'jkl':
res = res + '5'
elif i in 'mno':
res = res + '6'
elif i in 'pqrs':
res = res + '7'
elif i in 'tuv':
res = res + '8'
else:
res = res + '9'
print(res) #最后输出结果。
except:
break
输入:YUANzhi1987
输出:zvbo9441987