用python编写字母数字转换程序,某手机键盘如图所示,输入一个字符串,判断字符串上的字符是否都在图示手机键盘上,若有不在手机键盘上的字符,则提示字符串非法;若是合法的字符串,将字符串中的字母根据手机键盘上的对应关系转换为数字,其它字符不变,输出转换后的字符串。不论判断字符串是否合法还是转换,均不考虑字母大小写。
时间: 2023-06-05 17:04:38 浏览: 91
这是一个技术问题,我可以回答。以下是Python代码实现:
```python
def is_valid_string(s):
keyboard = ["123", "456", "789", "*0#"]
for char in s.lower():
if char.isalnum() and char not in "".join(keyboard):
return False
return True
def convert_string(s):
keyboard = {"abc": "2", "def": "3", "ghi": "4", "jkl": "5", "mno": "6", "pqrs": "7", "tuv": "8", "wxyz": "9"}
result = ""
for char in s.lower():
if char.isalpha():
for k, v in keyboard.items():
if char in k:
result += v
break
else:
result += char
return result
input_str = input("请输入一个字符串:")
if not is_valid_string(input_str):
print("非法字符串!")
else:
print(convert_string(input_str))
```
该程序中,`is_valid_string`函数用于判断字符串是否合法(即是否所有字符都在手机键盘上),`convert_string`函数用于将合法字符串中的字母转换为数字。最后判断输入的字符串是否合法,若非法则输出提示,若合法则输出转换后的结果。
阅读全文