Python入门之模块

模块

  • 当代码量增加时,可以考虑把代码放到不同的文件里
  • 每个以.py结尾的文件被称作模块文件
  • 文件是代码的物理组织形式
  • 模块是代码的逻辑组织形式,模块文件,将扩展名.py去掉就是模块名
    创建模块名为了不冲突,可以import 一下,如果不报错,则说明该模块名已经存在,如果报错,则该模块名不存在可以使用.

导入模块

#直接导入
>>> import time 
>>> time.ctime()
'Sun Nov  3 15:47:00 2019'

#从模块中导入一部分功能
>>> from random  import randint, choice
>>> randint(1,100)
96

#一行导入多个模块,不常用,可读性较差
>>> import os, sys

#导入模块的同时,为模块创建别名
>>> import getpass as gp
>>> p =  gp.getpass()
Password: 

自定义模块

#   vim ceshi.py
ce = '这是在测试'

def star(n=10):
    print('#' * n)
 
 # vim yun.py 
import ceshi

ceshi.star(15)
print(ceshi.ce)
print('这是在运行')

(Pytest) [student@room9pc01 day03]$ python yun.py 
###############
这是在测试
这是在运行

模块的特性

  • 导入模块时,模块内的代码会被执行一遍
  • 模块中的代码,希望它在作为一个脚本文件直接运行时执行;希望它被当成模块导入时,不要执行,这个时候可以使用__name_属性
  • __name__是一个特殊的变量,它的值有两个
    - 当程序文件直接运行时,值是__main__
    - 当程序文件作为模块导入时,值是模块名
    

pycharm中快捷输入方式 :main tab键

案例

创建randpass.py脚本,要求如下:

  1. 编写一个能生成8位随机密码的程序
  2. 使用random的choice函数随机取出字符
  3. 改进程序,用户可以自己决定生成多少位的密码
import random
import sys

def mkpa(n=6):       # 默认密码长度为6
    all_ch = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
    password = ''

    for i in range(int(n)):
        ch = random.choice(all_ch)
        password += ch
    print(password)

mkpa(sys.argv[1])

(Pytest) [student@room9pc01 day03]$ python yun.py 8 # 改变密码长度为8
SwYWPxxk
(Pytest) [student@room9pc01 day03]$ python yun.py 8
7vWaYbcB
改进
import random
import sys

def mkpa(n=6):       # 默认密码长度为6
    all_ch = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
    password = ''

    for i in range(n):
        ch = random.choice(all_ch)
        password += ch
    return password
if __name__ == '__main__':
    a = mkpa()
    print(a)


>>> import yun
>>> yun.mkpa()
'9Man6f'
>>> yun.mkpa(6)
'Kv7IGo'
>>> yun.mkpa(9)
'pHdCCViY7'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值