请编写一个函数issuitable,可以判断字符串参数w是否适合作为变量名或函数名,如果合适则返回True,否则返回False。编程:输入一串名字,以空格分隔每个名字,使用issuitable函数找出它们中的合适的名字并显示。 例如,输入:2su if sum2 a*b print int list sum 则显示:sum2
时间: 2024-03-27 12:38:06 浏览: 180
好的,下面是issuitable函数的代码实现:
```python
import re
def issuitable(w):
"""
判断字符串w是否适合作为变量名或函数名
"""
# 首字符必须为字母或下划线
if not re.match(r'^[a-zA-Z_]', w):
return False
# 其余字符必须为字母、数字或下划线
if not re.match(r'^[a-zA-Z0-9_]*$', w[1:]):
return False
# 不能是关键字
keywords = ['and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else',
'except', 'False', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'None',
'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'True', 'try', 'while', 'with', 'yield']
if w in keywords:
return False
# 如果通过了以上条件,则返回True
return True
```
接下来是主程序的实现,它可以接受以空格分隔的多个名字,使用issuitable函数判断它们是否适合作为变量名或函数名,并输出合适的名字。
```python
names = input('请输入多个名字,以空格分隔:').split()
suitable_names = [name for name in names if issuitable(name)]
print('合适的名字是:', ', '.join(suitable_names))
```
例如,输入2su if sum2 a*b print int list sum,程序会输出sum2。
阅读全文