7.18.1 强口令检测写一个函数,它使用正则表达式,确保传入的口令字符串是强口令。
强口令的定义是:长度不少于 8 个字符,同时包含大写和小写字符,至少有一位数字。
你可能需要用多个正则表达式来测试该字符串,以保证它的强度。
1234567891011121314import redef strong(str): m1 = re.search(r'\d', str) # 至少有一位数字 m2 = re.search(r'[A-Z]', str) # 包含大写字符 m3 = re.search(r'[a-z]+', str) # 包含小写字符 m4 = re.search(r'(.*){8,}', str) # 长度不少于8个字符 if m1 and m2 and m3 and m4: print('强密码') else: print('弱密码')stron ...
7.2 使用正则表达式的步骤1.用 import re 导入正则表达式模块
2.用 re.compile()函数创建一个 Regex 对象(使用原始字符串 r'\d\d\d-\d\d\d-\d\d\d\d')
3.向 Regex 对象的 search()方法传入想查找的字符串。它返回一个 Match 对象
4.调用 Match 对象的 group()方法,返回实际匹配文本的字符串
7.3 用正则表达式匹配更多模式7.3.1 利用括号分组r'(\d\d\d)-(\d\d\d-\d\d\d\d)
属性
描述
group() 或 group(0)
返回整个匹配的文本
group(1)
返回第 1 组匹配的文本
groups()
返回所有的分组
7.3.2 用管道匹配多个分组r'Batman|Tina Fey' 将匹配’Batman’或’Tina Fey’
7.3.3 用问号实现可选匹配?匹配零次或一次前面的分组。
7.3.4 用星号匹配零次或多次*匹配零次或多次前面的分组。
7.3.5 用加号匹配一次或多次+匹配一次或多次前面的 ...
4.10.1 逗号代码12345678910def strlist(listname): spam = listname[0] for i in range(1, len(listname) - 1): spam = spam + ', ' + str(listname[i]) spam = spam + ' and ' + str(listname[len(listname) - 1]) return spamspam = ['apples', 'bananas', 'tofu', 'cats']example = strlist(spam)example
输出1'apples, bananas, tofu and cats'
4.10.2 字符图网格1234567891011121314grid = [['.', '.', '.', ' ...
5.6.1 好玩游戏的物品清单1234567891011stuff = {'rope': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12}def displayInventory(inventory): print('Inventory:') item_total = 0 for k, v in inventory.items(): print(str(v) + ' ' + k) item_total += v print("Total number of items: " + str(item_total))displayInventory(stuff)
输出1234567Inventory:1 rope6 torch42 gold coin1 dagger12 arrowTotal nu ...
bulletPointAdder.py - 在 Wiki 标记中添加无序列表12345678910111213#! python3# bulletPointAdder.py - 在Wiki标记中添加无序列表# 每行文字都在剪贴板中。import pypercliptext = pyperclip.paste()# 分割行并添加星号lines = text.split('\n')for i in range(len(lines)): # 遍历“行”列表中的所有索引 lines[i] = '* ' + lines[i] # 为“行”列表中的每个字符串添加星号text = '\n'.join(lines)pyperclip.copy(text)
示例文本1234Lists of animalsLists of aquarium lifeLists of biologists by author abbreviationLists of cultivars
输出1234* Lists of animals* Lists of ...
pw.py 一个口令保管箱123456789101112131415161718# pw.py 一个口令保管箱import pyperclipimport sysPASSWORDS = {'email': 'asdfihejkagwbascarevoiwera', 'blog': 'seruniobthopaesrbnesropt', 'luggage': 'asDIUrvbyialestdbhajlsnt'}if len(sys.argv) < 2: print('Usage: py pw.py [account] - copy account password') sys.exit()account = sys.argv[1]if account in PASSWORDS: pyperclip.copy(PASSWORDS[account]) ...
表格打印printTable 1123456789101112131415161718192021tableData = [['apples', 'oranges', 'cherries', 'banana'], ['Alice', 'Bob', 'Carol', 'David'], ['dogs', 'cats', 'moose', 'goose']]def printTable(data): colWidths = [0] * len(data) for b in range(len(data[0])): for a in range(len(data)): if colWidths[a] < len(data[a][b]): ...
phoneAndEmail.py - 电话号码和 E-mail 地址提取程序123456789101112131415161718192021222324252627282930313233343536373839404142#! python3# phoneAndEmail.py - 电话号码和 E-mail 地址提取程序import pyperclip, rephoneRegex = re.compile(r'''( (\d{3}|\(\d{3}\))? # area code (\s|-|\.)? # separator (\d{3}) # first 3 digits (\s|-|\.) # separator (\d{4}) ...
常用快捷键
组合键
对应动作
Win + Ctrl + D
新建虚拟桌面
Win + Ctrl + F4
关闭虚拟桌面
Alt + Page Up
向上移动一个屏幕
Alt + Page Down
向下移动一个屏幕
Win + E
打开文件资源管理器
Win + L
锁屏
Win + S
搜索,小娜
Ctri+P
快捷打印
Win+P
屏幕映射
Ctrl + Alt + Del
任务管理器,系统软中断
Ctrl + Esc
开始屏幕
Win + R
打开运行窗口,追求高效必备
Win + D
显示/离开桌面
Win + I
设置
Shit + del
永久删除,不经过回收站
F1
帮助
F2
重命名
F3
在文件资源管理器中搜索文件或文件夹
F4
在文件资源管理器中显示地址栏列表
F5
刷新活动窗口
Win + pause
打开电脑信息
Win+X
快速菜单
Win+PrtSc
全屏截图
Win+ Shift + S
无敌截图
Alt+tab
多任务切换
Win+ta ...
新版 Jupyter 扩展已上线,经过一年多开发测试,原有 Notebook 内核,已由 Native NoteBook 替代,本篇文章也完成其历史使命,仅留作历史记录吧,大家不必继续阅读了。
新的 NoteBook 在 Cell命令行模式,已基本支持了 Jupyter Notebook 的所有命令
新的 NoteBook 在 Cell 编辑模式,已支持所有的 Vscode 快捷键。
-——————————-
Vscode 从去年开始,在他的 Python 扩展里,开始完整的支持 Jupyter Notebook, 经过几个月的改进和完善,目前已经处于一个非常不错的情况。
本文支持的环境,vscode Version 1.41 ,python extension Version 2020.1.0
相比之下,Vscode 的 Jupyter 支持环境,整体内存和 CPU 开销都不小(今年的第一个版本,采用了Python daemon 技术,提升了不少的性能,建议大家更新一下),我们为什么还要使用 Vscode 来使用 Jupyter Notebook 呢?
至少对我来说,我觉得有以下 ...