通过一个面向对象例子 引出正则表达式。下面两个例子都是正则表达式的应用:
# 给类发消息 就要写
# 两个爸爸时,需要初始化的话,就要把两个类名都写上
# 菱形继承
# 如果一个类有多个父类,而多个父类又有公共的父类(菱形继承/砖石继承)
# 那么在搜索属性和方法时搜索的依据是c3算法(有点类似于广度优先搜索)
# 这是Python3中的一个改进 在此之前搜索的算法是深度优先搜索(DFS)
# 少用多重进程,如果有多个类,就把后面的写成抽象的类 用abc
from abc import ABCMeta,abstractmethod
class Father(object):
def __init__(self):
self._name = '老五'
def drink(self):
print(self._name + '正在喝二锅头')
def gamble(self):
print(self._name + '正在赌博.')
class Monk(object,metaclass=ABCMeta):
def __init__(self,nickname):
self._nickname = nickname
@abstractmethod
def eat_vegtable(self):
pass
class Musician(object):
def __init__(self, artname):
self._artname = artname
@abstractmethod
def drink(self):
pass
@abstractmethod
def play_piano(self):
pass
class Son(Father,Monk,Musician):
def __init__(self,name,nickname,art_name):
Father.__init__(self)
self._name = name
self._nickname = nickname
self._art_name = art_name
def play_piano(self):
print(self._art_name + '正在弹钢琴')
def drink(self):
print(self._name + '正在喝白开水。')
def eat_vegtable(self):
print(self._nickname + '正在吃斋')
def chant(self):
print(self._nickname + '正在念经')
def main():
son =Son('小明','潇哥','老六')
son.drink()
son.gamble()
# Musician.drink(son)
son.eat_vegtable()
son.chant()
son.play_piano()
if __name__ == '__main__':
main()
结果如下:
小明正在喝白开水。
小明正在赌博.
潇哥正在吃斋
潇哥正在念经
老六正在弹钢琴
# # 给用户名 判断是不是指定的长度 有效返回真
#
# class Username(object):
# def __init__(self,name):
# self._name = name
#
# def juge(self):
# if 6 < len(self._name) < 20:
# return True
#
# def main():
# name = Username('王大锤是都')
#
# print(name.juge())
#
# if __name__ == '__main__':
# main()
def a_username(username):
if 6 <= len(username) <= 20:
for ch in username:
if not('0' <= ch <= '9' or 'A'<= ch <= 'Z' or 'a'<= ch <= 'z' or ch=='_' ):
return False
return True
return False
def main():
print(a_username('admin'))
print(a_username('ad$min'))
print(a_username('_admin_'))
print(a_username('12355admin'))
if __name__ == '__main__':
main()
结果
False
False
True
True
这是一个验证输入用户信息和QQ号:
import re
def main():
username = input('输入用户名')
qq = input('输入QQ号:')
m1 = re.match(r'^[1-9]{6,20}',username)
if not m1:
print('请输入有效的用户名')
m2 = re.match(r'^[1-9]\d{4,11}$',qq)
if not m2:
print('请输入有效的QQ号')
if m1 and m2:
print('你输入的信息是有效的!')
if __name__ == '__main__':
main()
输出结果如下:
输入用户名admin123
输入QQ号:634163114
请输入有效的用户名
接下来是讲的代码版本系统管理:
这是一个作为IT人士必须要get的技能。
主要是讲本地写的代码上传到网上保存,利于团队的开发,可以回到旧版本的代码,利于公司团队对代码进行合理的管理。
下面是一些命令操作,主要是在cmd窗口下执行。同时上传到coding后台项目上去。
cmd命令 窗口下执行
git –version 确认是否安装git成功
cd Desktop 切换到桌面
mkdir hellokitty 创建文件夹hel…
cd hellokitty 进入文件夹
git init 初始化仓库
notepad hello.py 打开记事本写代码
git add hello.py 添加hello.py的文件
git status 检查文件情况
git add . 是讲所以文件纳入版本控制git config –global user.name ‘[email protected]’ 设置邮箱名可以随便设置
git commit -m ‘说明描述’
git log 查看历史版本git reset 版本号(commit后面的那串字符) 恢复到之前版本
git rm 文件名 删除某文件