码迷,mamicode.com
首页 > 编程语言 > 详细

以写代学:python 模块简介&输出用户指定位数密码的脚本

时间:2016-07-20 19:52:03      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:输出用户指定位数的密码 python 模块

什么是模块

(1)模块是从逻辑上组织python代码的形式

(2)当代码量变的相当大的时候,最好把代码分成一些有组织的代码段,前提是保证它们的彼此交互

(3)这些代码段之间有一定的联系,可能是一个包含数据成员和方法的类,也可能是一组相关但彼此独立的操作函数

(4)模块名不能乱起,字母数字下划线组成,首字母不能是数字

导入模块

(1)使用import导入模块,模块被导入后,程序会自动生成pyc的字节码文件以提升性能

(2)模块属性通过“模块名.属性”的方法调用,如果仅需要模块中的某些属性,也可以单独导入

(3)模块有一个__name__特殊属性,当模块文件直接执行时,__name__的值为"__main__",当

模块被另一个文件导入时,__name__的值就是该模块的名字

>>> import sys                 //导入sys模块
>>> import os,string        //一次导入两个模块,os,string模块
>>> string.digits              //调用模块中的方法
‘0123456789‘
>>> from random import randint   //只导入random模块中的randint函数
>>> randint(1,10)                            //使用randint函数
2                                                       //输出结果

模块加载

(1)一个模块只被加载 一次,无论它被导入多少次

(2)只加载一次可以阻止多重导入代码时被多次执行

(3)如果两个文件相互导入,防止了无限的相互加载

(4)模块加载时,顶层代码会自动执行,所以只将函数放入模块的顶层是良好的编程习惯

if __name__ = "__main__":

     执行语句              //可以是一些测试语句,测试函数的功能

这样就可以避免导入模块的时候“执行语句”,基本写程序都会采用这样的结构

>>> import string
>>> import tab                //导入tab模块,这样就可以实现自动补齐
>>> string.lowercase       //调用string模块,产生小写字母
‘abcdefghijklmnopqrstuvwxyz‘
>>> string.uppercase       //调用string模块,产生大写字母
‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘
>>> string.letters              //调用string模块,产生字母
‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘
>>> string.digits               //调用string模块的digits属性,产生数字
‘0123456789‘
>>> string.__file__             //可以查看string模块的源码
‘/usr/lib64/python2.6/string.pyc       //完整路径为去掉结尾  c以后的路径

脚本实例

需要生成用户指定位数的随机密码

#!/usr/bin/env python

import string          //导入string模块,用于生成字符串
import random       //导入random模块,用于随机取一个字符
import sys                //导入sys,用于取位置参数

num = int(sys.argv[1])           //传递位置参数,并将字符类型转换为整型
all_chs = string.digits + string.letters    //将字母和数字组成的字符串赋值给all_chs

def mkpasswd(num):     //定义一个生成密码的函数
    pwd = ""                     //变量赋空值
    for i in range(num):    //循环执行
        pwd += random.choice(all_chs)   //直接拼接随机生成的字符串
    return pwd                        //返回pwd
if __name__ == "__main__":   //用于测试的代码,也可以用本程序输出要生成的密码
    print mkpasswd(num)

sys.argv  这个模块是用来存程序名和参数 argv(0)是程序名,argv(1)是第一个参数


本文出自 “庭中有奇树” 博客,请务必保留此出处http://zhangdl.blog.51cto.com/11050780/1828100

以写代学:python 模块简介&输出用户指定位数密码的脚本

标签:输出用户指定位数的密码 python 模块

原文地址:http://zhangdl.blog.51cto.com/11050780/1828100

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!