编写程序,接收一个包含数字与小写字母的字符串,作如下处理: 去掉字符串首尾空格 统计小写字母和数字,并分别存入两个列表中 字符串中的中文数字也纳入统计(可考虑选择使用isdecimal(), isdigit(), isnumeric()等函数) 最后按降序输出结果 需检查输入字符串的合法性 输入格式: 从键盘输入一个字符串。 输出格式: 输出排序后的两个列表。 输入样例1: 在这里给出一组输入。例如: 123573akdjkf 输出样例1: 在这里给出相应的输出。例如: The sor
时间: 2024-03-03 14:49:36 浏览: 53
好的,这是一个字符串处理的问题。以下是一个 Python 的实现,可以完成这个任务:
```python
s = input().strip() # 读入字符串并去掉首尾空格
n = len(s)
nums = []
chars = []
for i in range(n):
if s[i].isalpha():
chars.append(s[i])
elif s[i].isdigit() or s[i].isdecimal() or s[i].isnumeric():
nums.append(s[i])
elif not s[i].isspace():
print("输入字符串不合法!") # 如果出现非数字、非字母、非空格的字符,则提示输入不合法
exit(0) # 退出程序
nums.sort(reverse=True)
chars.sort(reverse=True)
print("数字列表:", nums)
print("字母列表:", chars)
```
程序中,我们首先读入一个字符串 `s`,并使用 `strip()` 方法去掉字符串首尾的空格。然后,遍历字符串中的每个字符,如果当前字符是小写字母,则将其加入到 `chars` 列表中;如果当前字符是数字,则将其加入到 `nums` 列表中;如果当前字符不是数字、字母或空格,则说明输入字符串不合法,输出错误信息并退出程序。最后,对 `nums` 和 `chars` 列表分别进行降序排序,并输出结果。
例如,对于输入字符串 `123573akdjkf`,程序的输出为:
```
数字列表: ['7', '5', '3', '3', '2', '1']
字母列表: ['k', 'k', 'j', 'f', 'd', 'a']
```
注意,这个实现并不是最优的。在接下来的对话中,我们也可以讨论其他更高效的实现方式,比如使用正则表达式来提取数字和字母。
阅读全文