上一篇文章分享了正则表达式的操作,这一篇文章就让我们一起看看正则表达式与逻辑判断结合起来会发生什么吧!感兴趣的小伙伴欢迎评论区或者是私信留言!
一、题目描述:
输入一个字符串,检查其是否为合法的python变量。输入$$$结束:
对于错误的给出建议:
不符合1的,在变量名前加上一个随机生成的字母;
不符合3的,在变量名最后面加一个随机生成的数字;
不符合2的,将这些符号去除,若去除后,不符合前面两条则按前面两条处理。

- import random
- import re
- import string
- key_list = ["True","False","try","except","break","sum","min","max","all","any"]
- char_dx = [chr(i) for i in range(65, 91)]
- char_xx = [chr(i) for i in range(97, 123)]
- while True:
- input_str = input("请输入一个字符串:")
- if input_str == "$$$":
- break
- else:
- if input_str in key_list:
- print("建议改为:",input_str,random.randint(0,10),sep="")
- else:
- if input_str[0] != "_" and input_str[0] not in char_dx and input_str[0] not in char_xx:
- input_str = re.sub('[%s]' % re.escape(string.punctuation[:31:]), '', input_str)
- new_str = char_dx[random.randint(0,len(char_xx))]+input_str
- new_str = new_str.replace(" ","")
- print("建议改为:",new_str)
-
- else:
- if " " in list(input_str) or re.sub('[%s]' % re.escape(string.punctuation[:31:]), '', input_str) != input_str:
- input_str = input_str.replace(" ","")
- input_str = re.sub('[%s]' % re.escape(string.punctuation[:31:]), '', input_str)
- if input_str not in key_list:
- print("建议改为:",input_str)
- else:
- print("建议改为:",input_str,random.randint(0,10),sep="")
- else:
- print("合法")