| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [View Raw Code] [Original HTTPS Page] |
random 模块 (随机模块)
随机小数
random() : 产生 0-1 之间的随机小数
import random # from random import random random.random() # random()
uniform(a, b) : 指定范围随机小数
随机整数
randint(a, b) : 指定范围随机整数,包含开头结尾
randrange(start, stop, [step]) : start, stop 范围内间隔指定步长 (step) 的整数,包含开头不包含结尾
随机选择一个数据
# from random import choice
import random
lst = [1,2,3,4,5]
random.choice(lst)
# choice(lst)打乱
sys 模块 imort sys
sys.version : 返回解释器版本号
>>> sys.version '3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)]'
sys.path : 返回模块搜索路径
>>> sys.path ['', 'E:\\PyCharm 2020.2\\python3.7\\python37.zip', 'E:\\PyCharm 2020.2\\python3.7\\DLLs', 'E:\\PyCharm 2020.2\\python3.7\\lib', 'E:\\PyCharm 2020.2\\python3.7', 'E:\\PyCharm 2020.2\\p ython3.7\\lib\\site-packages', 'E:\\PyCharm 2020.2\\python3.7\\lib\\site-packages\\win32', 'E:\\PyCharm 2020.2\\python3.7\\lib\\site-packages\\win32\\lib', 'E:\\PyCharm 2020.2\\python3 .7\\lib\\site-packages\\Pythonwin']
sys.argv : 接收命令行下参数
import sys print(sys.argv) print(ret[0]) print(ret[1]) print(ret[2]) >>>python Day_10.py run start ['Day_10.py', 'run', 'start'] Day_10.py run start
string : 提供系统中字符串的基本操作方式,描述当前编程语言中使用到的字符分类 import string
string 模块下 所有内容
whitespace = ' \t\n\r\v\f'
ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ascii_letters = ascii_lowercase + ascii_uppercase
digits = '0123456789'
hexdigits = digits + 'abcdef' + 'ABCDEF'
octdigits = '01234567'
punctuation = r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""
printable = digits + ascii_letters + punctuation + whitespace
查看 string 模块 dir(str)
>>> dir(string) ['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_re', '_string', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']
字符串显示大小写全英文字母 string.ascii_letters
>>> string.ascii_letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
字符串显示大写全英文字母 string.ascii_uppercase
>>> string.ascii_uppercase 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
字符串显示小写全英文字母 string.ascii_lowercase
>>> string.ascii_lowercase 'abcdefghijklmnopqrstuvwxyz'
字符串显示 0~9 十个数字 string.digits
>>> string.digits '0123456789'
字符串显示 十六进制用到的所有字母数字 string.hexdigits
(hexdigits = digits + 'abcdef' + 'ABCDEF')
>>> string.hexdigits '0123456789abcdefABCDEF'
字符串显示 八进制用到所有数字 string.octdigits (octdigits = '01234567')
>>> string.octdigits '01234567'
string.whitespace 将为字符提供空格,制表符,换行符,返回符,换页符和垂直制表符。 string.whitespace
>>> string.whitespace ' \t\n\r\x0b\x0c'
string.printable 返回所有标点符号集,数字,ascii_letters和空格。 string.printable
>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
random 与 string 模块结合生成六位数验证码
>>>''.join(random.sample(string.ascii_letters+string.digits, 6)) 'A0yNxY'
time 模块
python 表示时间的三种方式
时间戳 (timestamp) [计算机能够识别的时间格式, float类型]
时间元组 (struct_time) [人方便观看的时间格式]
9 个元素 (年、月、日、时、分、秒、一周的第几日、一年的第几天、夏令时)
| 元素 | 属性 | 值 |
|---|---|---|
| tm_year | 年 | (4 位数) 2008 |
| tm_mon | 月 | 1 - 12 |
| tm_mday | 日 | 1 - 31 |
| tm_hour | 小时 | 0 - 23 |
| tm_min | 分钟 | 0 - 59 |
| tm_sec | 秒 | 0 - 61 (60 或 61 是闰秒) |
| tm_wday | 一周的第几日 | 0 - 6 (0 是周一) |
| tm_yday | 一年的第几日 | 1 - 366 (儒略历) |
| tm_isdst | 夏令时 | -1, 0, 1 (-1 是决定是否为夏令时的旗帜) |
格式化的时间字符串 [便于操作的时间格式]
表示方式 : '1999-1-02'
| 元素 | 属性 | 值 |
|---|---|---|
| %y | 两位数的年份表示 | 00 - 99 |
| %Y | 四位数的年份表示 | 000 - 9999 |
| %m | 月份 | 01 - 12 |
| %d | 月内的一天 | 0 - 31 |
| %H | 24 小时制小时数 | 0 - 23 |
| %I | 12 小时制小时数 | 01 - 12 |
| %M | 分钟数 | 0 - 59 |
| %S | 秒 | 0 - 59 |
| %a | 本地简化星期名称 | |
| %A | 本地完整星期名称 | |
| %b | 本地简化月份名称 | |
| %B | 本地完整月份名称 | |
| %c | 本地相应的日期表示和时间表示 | |
| %j | 年内的一天 | 001 - 366 |
| %p | 本地 A.M. 或 P.M. 的等价符 上午下午 | |
| %U | 一年中的星期数 (星期天为星期的开始) | 00 - 53 |
| %w | 星期 (星期天为星期的开式) | 0 - 6 |
| %W | 一年中的星期数 (星期一为星期的开始) | 00 - 53 |
| %x | 本地相应的日期表示 | |
| %X | 本地相应的时间表示 | |
| %Z | 当前时区的名称 | |
| %% | % 号本身 |
time.sleep(seconds) : 睡眠功能,是程序休眠多少秒后继续执行
time.time() : 时间戳
time.localtime(seconds=None) : 时间元组 (可以传入时间戳来转化为时间元组)
# 将当前时间戳转化为时间元组 >>> time.localtime() time.struct_time(tm_year=2020, tm_mon=8, tm_mday=21, tm_hour=10, tm_min=27, tm_sec=27, tm_wday=4, tm_yday=234, tm_isdst=0)
time.strftime(format, p_tuple=None) : 根据格式规范将时间元组转换为字符串, 默认为当前时间
>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
'2020-08-21 10:32:50'
>>> time.strftime('%Y-%m-%d %H:%M:%S')
'2020-08-21 10:35:31'
>>> time.strftime('%Y/%m/%d %H:%M:%S')
'2020/08/21 10:36:10'
>>> time.strftime('%x %X')
'08/21/20 10:37:58
时间戳与时间元组转换
time.gmtime(seconds=None) UTC 时间 (世界统一时间比北京时间少 8 小时)和 time.localtime() (本地时间) 默认为当前时间
>>> time.gmtime() time.struct_time(tm_year=2020, tm_mon=8, tm_mday=21, tm_hour=2, tm_min=48, tm_sec=18, tm_wday=4, tm_yday=234, tm_isdst=0) >>> time.localtime() time.struct_time(tm_year=2020, tm_mon=8, tm_mday=21, tm_hour=10, tm_min=48, tm_sec=55, tm_wday=4, tm_yday=234, tm_isdst=0)
time.mktime()
>>> time.mktime(time.localtime()) 1597978194.0 >>> time.mktime(time.gmtime()) 1597949433.0 >>> time.time() 1597978205.5068083
时间元组和格式化字符串之间的转换
time.strftime("格式定义", "结构化时间") 结构化时间若不传,默认为当前时间
>>> time.strftime('%x %X')
'08/21/20 10:37:58'
time.strptime("时间字符串", "字符串对应格式")
>>> time.strptime('Fri Aug 21 10:52:32 2020')
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=21, tm_hour=10, tm_min=52, tm_sec=32, tm_wday=4, tm_yday=234, tm_isdst=-1)
>>> time.strptime("2020-2-1", "%Y-%m-%d")
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=32, tm_isdst=-1)
时间元组 --> %a %b %d %H:%M:%S %Y 时间串 (周 月 日 时:分:秒 年)
time.asctime("结构化时间") 若不传参数,默认为当前时间的格式串
>>> time.asctime() 'Fri Aug 21 10:52:32 2020'
时间戳 --> %a %b %d %H:%M:%S %Y 时间串 (周 月 日 时:分:秒 年)
time.ctime("时间戳") 若不传参数,默认为当前时间的格式串
>>> time.ctime(time.time()) 'Fri Aug 21 10:53:28 2020' >>> time.ctime(time.mktime(time.localtime())) 'Fri Aug 21 10:54:00 2020' >>> time.ctime(time.mktime(time.gmtime())) 'Fri Aug 21 02:54:23 2020'
datetime 模块 import datetime
datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]) 生成 日期和时间的结合
>>> print(datetime.datetime(2020,3,4,5,5,6)) 2020-03-04 05:05:06
datetime.date(year, month, day) 生成理想化的简单型日期,它假设当今的公历在过去和未来永远有效
>>> print(datetime.date(2020,5,6)) 2020-05-06
datetime.time(hour, minute, second[, microsecond[, tzinfo]]) 生成独立于任何特定日期的理想化时间,它假设每一天都恰好等于 246060 秒。 (这里没有“闰秒”的概念。)
>>> print(datetime.time()) 00:00:00 >>> print(datetime.time(4,5,6)) 04:05:06
d = datetime.now() 当年时间 年月日时分秒
>>> datetime.datetime.now() datetime.datetime(2020, 8, 21, 13, 56, 59, 65930)
hashlib 模块 (加密模块) import hashlib
术语
类的声明 (class)
class 类名:
"""类的文档注释"""
def __init__(self, name):
"""声明属性的方法"""
# 自定义属性: 固定语法
self.name = name
def study(self):
"""方法文档注释"""
代码
面向对象设计开发
__new__(cls, *args, **kwargs) : 创建对象实例方法 (最先被调用) ,实例化时先 __new__ 再 __init__
__init__(self) : 类的构造函数或初始化方法,可以让创建对象更加灵活
__str__(self) : 目标是可读性,或者说,__str__的结果是让人看的。打印对象的属性信息,方便我们调试代码。
__repr__(self) : 目标是准确性,或者说,__repr__的结果是让解释器用的,转化为供解释器读取的形式
__del__(self) : 当一个对象被从内存中销毁前(把这个对象从内存中删除掉),会自动调用__del__方法
__dict__ : 类的属性(包含一个字典,由类的数据属性组成)
__doc__ : 类的文档字符串
__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)
__cmp__ ( self, x ) : 对象比较, 简单的调用方法 : cmp(obj, x)
| Back | FazBrowse Home | New Git URL |