以写代学: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)是第一个参数

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

时间: 2024-12-24 08:06:23

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

以写代学:python 原始字符串操作符&&字符串内建函数

原始字符串操作符 (1)原始字符串操作符是为了对付那些在字符串中出现的特殊字符 (2)在原始字符串里,所有的字符都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符 (3)比如在windows写路径时经常会把出现以下情况 2.字符串内建函数 (1)每次都不会改变字符串原本的值 (2)字符串.函数 或者将字符串赋值给函数后写成变量名.函数是都可以的 (3)还有很多的内涵函数,下边只是举例说明 >>> import tab        >>> hi = "

以写代学:python os模块 cpickle模块

>>> import tab >>> import os >>> os.symlink("a.txt", "aa.txt") //创建a.txt的链接文件aa.txt >>> os.listdir(os.curdir)      //查看当前目录 >>> os.listdir(os.pardir)      //查看父目录(上级目录) >>> os.listd

以写代学:python shutil模块

在python交互解释器中导入shutil模块,一起来简单了解一下shutil模块,shutil是shell utility的缩写,shell实用工具 可以查看帮助 shutil(help)                     //可以显示出帮助信息 import shutil shutil.copy("/bin/ls","/home")     //将ls文件拷贝到home目录下,可以/home/list复制过来为list,这样做只拷贝内容.但目标必须是一个目

以写代学:python实现 剪刀、石头、布游戏

前言: 这个脚本实现剪刀石头布的游戏,但是并没有异常处理.只有用户在输入0.1.2时才可以正常处理. #!/usr/bin/env python# coding: utf8import random                            //导入random模块,这是个产生随机数的模块 all_choice = ["石头","剪刀","布"]       //定义一个列表,将选择添加到列表中win_list = [["石

以写代学:python相关概念

注释及续行 (1)尽管python是最好的语言之一,但这并不意味着程序员在代码中就可以不写注释 (2)和很多UNIX脚本类似,python注释语句从#字符开始 (3)注释可以在一行的任何地方开始,解释器会忽略掉该行#之后的所有内容 (4)一行过长的语句可以使用反斜杠\分解成几行,其实是一行 aList[ 1, {"a","alice"} 2, {"b","bob"} ] 可以写成类似的,可读性强一点,仍然是一个列表,里边有四项

以写代学:python 错误、异常、断言

1.错误 (1)语法错误 语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器无法编译.这些错误必须在程序执行前纠正. (2)逻辑错误 逻辑错误可能是由于不完整或是不合法的输入所致.还可能是逻辑无法生成,计算,或是输出结果需要的过程无法执行 2.异常 (1)当python检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常 (2)异常是因为程序出现了错误而在正常控制流以外采取的行为.这个行为又分为两个阶段首先是引起异常发生的错误,然后是检测(和采取可能的措施)阶

以写代学:python while循环

前言: 通过一个小脚本来学习python的while循环 脚本一:实现1到100的数相加 #!/usr/bin/env python counter = 1                               //给变量赋值,python不需要定义变量,python引用变量sum100 = 0 while counter < 101:                 //while循环,直到while不小于101,就退出    sum100 += counter             

以写代学:python 格式化操作符

1.简介 (1)%s优先使用str()函数进行转换,但是后边可以跟列表,数字,字符串 "%s%s" % ("name","age")显示多个字符 (2)%c  转换成字符 (3)%d或者%i,转换成整数 (4)%o转化为无符号8进制或16进制,如果加#号就会是有符号的 (5)%e或%E转换为科学计数法 (6)%f或%F转换为浮点数,可以在f前面加x.y   x代表总位数,y代表小数点右边的位数 2.脚本实例 用户输入内容,打印在屏幕上,如下图 #

以写代学:python 数据类型之字符串,判断用户输入的id是否符合要求

字符串操作符 比较操作符:字符串大小按ASCLL码值大小进行比较 切片操作符:[].[:].[::] 成员关系操作符:in.not in 脚本:判断用户输入的id是否符合要求 #!/usr/bin/env python import string #定义字符的范围first_id = string.letters + "_"           //确定首字符的范围all_id = string.digits + first_id         //确定其他字符的范围 #请求用户输入