一、isdigit()函数的用法:
判断单个字符是否为数字
判断字符串中是否仅含有数字
二、Python中isupper() 方法检测字符串中所有的字母是否都为大写。
上代码:
if i.isupper() #判断i是不是大写的情况
三、ord()函数用于转换ASCII码
四、华为机试例子
现在有一种密码变换算法。 九键手机键盘上的数字与字母的对应: 1–1, abc–2, def–3, ghi–4, jkl–5,
mno–6, pqrs–7, tuv–8 wxyz–9, 0–0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成
2,x 变成 9. 而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a
。 数字和其它的符号都不做变换。 数据范围: 输入的字符串长度满足 1 \le n \le 100 \1≤n≤100 输入描述:
输入一组密码,长度不超过100个字符。输出描述: 输出密码变换后的字符串
示例1 输入: YUANzhi1987 输出: zvbo9441987
以下为代码及对应思路:
while True:
try:
s1=input()
result=[]
for i in s1:
if i.isdigit():#检测字符串是否只由数字组成,只对 0 和 正数有效。
result.append(i)
elif i.isupper() and i!='Z':#判断字符c是否为大写英文字母。
result.append(chr(ord(i.lower())+1))
#如果是大写字母,则先把大写字母转化成小写(lower()),再转成ascii码(ord()函数)+1,在转成对应字符(chr函数)。
elif i=='Z':
result.append('a')
else:
if i in 'abc':
result.append('2')
elif i in 'def':
result.append('3')
elif i in 'ghi':
result.append('4')
elif i in 'jkl':
result.append('5')
elif i in 'mno':
result.append('6')
elif i in 'pqrs':
result.append('7')
elif i in 'tuv':
result.append('8')
elif i in 'wxyz':
result.append('9')
print(''.join(result))
except:
break