代码规范1. 概述欢迎使用品优购代码规范, 这个是我借鉴京东前端代码规范,组织的品优购内部规范。旨在增强团队开发协作、提高代码质量和打造开发基石的编码规范,
以下规范是团队基本约定的内容,必须严格遵循。
HTML 规范基于 W3C、苹果开发者 等官方文档,并结合团队业务和开发过程中总结的规范约定,让页面 HTML 代码更具语义性。
图片规范了解各种图片格式特性,根据特性制定图片规范,包括但不限于图片的质量约定、图片引入方式、图片合并处理等,旨在从图片层面优化页面性能。
CSS 规范统一规范团队 CSS 代码书写风格和使用 CSS 预编译语言语法风格,提供常用媒体查询语句和浏览器私有属性引用,并从业务层面统一规范常用模块的引用。
命名规范从 目录、图片、HTML/CSS文件、ClassName 的命名等层面约定规范团队的命名习惯,增强团队代码的可读性。
2. HTML 规范DOCTYPE 声明HTML 文件必须加上 DOCTYPE 声明,并统一使用 HTML5 的文档声明:
1<!DOCTYPE html>
HTML5 标准模版
12345678<!DOCTYPE h ...
8.1 文件与文件路径在 Windows 中,根文件夹名为 C:\,也称为 C:盘。
在 OS X 和 Linux 中,根文件夹是/。
8.1.1 Windows 上的倒斜杠以及 OS X 和 Linux 上的正斜杠如果将单个文件和路径上的文件夹名称的字符串传递给它,os.path.join()就会返回一个文件路径的字符串,包含正确的路径分隔符。
123>>> import os>>> os.path.join('usr', 'bin', 'spam')'usr\\bin\\spam'
如果需要创建文件名称的字符串,os.path.join()函数就很有用。
123456>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx']>>> for filename in myFiles: print(os.p ...
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}) ...