(D13)Random模块-包

随机模块:Random

作用:
用于模拟或者生成随即输出的模块儿

用法示意:

import random as R
函数名 描述
R.random() 返回一个(0,1)之间的堆积实数
R.unifrom(a,b) 返回[a,b]之间的随机实数
R.randin(a,b) 返回在[a,b] 范围内的整数
R.randrange 返回range(start,stop,step)中的随机数
R.chise(seq) 从序列中返回任意元素
R.shuffle(seq[random]) 随机指定序列顺序(打乱顺序)
R.sample(seq,n) 从序列中选择n个随机契额不重复的元素

导入方式

import语句
from import语句
from import *语句
示例:

def myfac(n):
    ‘‘‘这是函数的文档字符串‘‘‘
    print("正在计算n的阶乘")

def mysum(n):
    print("!!!正在计算1 + 2 + 3 + .... + %d的和" % n)

name1 = "Audi"
name2 = "tesla"

print("mymod.py 文件被加载并导入")
print("当前我这个模块在:", __file__)
print("mymod.py模块的模块名为:", __name__)

if __name__ == ‘__main__‘:
    print("您正在用 python3 把 mymod.py当主模块运行")
else:
    print("此模块是被import 导入运行的")

import 语句查找模块文件的路径顺序:
import 模块名 # 去哪儿找这个 “模块名.py

	1. 搜索内建模块
	2. 搜索程序运行时的路径(当前路径)
	3. sys.path 提供的路径
			sys.path 是一个列表,内部存入的都是模块的搜索路径
    >>> import sys
    >>> print(sys.path)

模块被导入和执行的过程:

模块的属性:

__doc__属性:用于绑定模块的文档字符串
__file__属性:用于绑定模块的文件路径名
__name__属性:用来记录模块自身的名字

示例:

print("mymod.py 文件被加载并导入")
print("当前我这个模块在:", __file__)
print("mymod.py模块的模块名为:", __name__)

if __name__ == ‘__main__‘:
    print("您正在用 python3 把 mymod.py当主模块运行")
else:
    print("此模块是被import 导入运行的")

模块的__all__列表

作用:
当 from mod import * 语句导入时,只导入__all__列表内的属性

说明:
__all__列表是存放可导出属性的字符串列表
示例:

__all__ = [‘f1‘, ‘name1‘]

def f1():
    f2()
    f3()

def f2():
    pass

def f3():
    pass

name1 = ‘aaaaa‘
name2 = ‘bbbbb‘

模块的隐藏属性:
模块中以‘_’开头的属性,在用 from mod import * 时不被导入,也称为隐藏属性



(模块包) Package

包是将模块文件夹的组织形式进行分组管理的方法
作用:
将一系列模块进行分类管理,有利于防止命名冲突
可以在需要的时候加载一个或者部分模块
示例:

	mypack/
	     __init__.py
	     menu.py
	     games/
	         __init__.py
	         contra.py
	         supermario.py
	         tanks.py
	     office/
	         __init__.py
	         excel.py
	         word.py

包的导入:

同模块的导入规则  
  • import 包名 [as 包别名]
  • import 包名.模块名 [as 模块新名]
  • import 包名.子包名.模块名 [as 模块新名]

  • from 包名 import 模块名 [as 模块新名]
  • from 包名.子包名 import 模块名 [as 模块新名]
  • from 包名.子包名.模块名 import 属性名 [as 属性新名]

  • from 包名 import *
  • from 包名.模块名 import *

    __init__文件
  • 常规包内必须存在的文件
  • 会在包加载的时候自动调用
    作用:
    编写此包的内容
    在包内填写文档字符串
    在__init__.py中可以加载此包所依赖的一些其他模块

all.py中的__all__列表
作用:
用来记录有哪些模块儿或包需要导入
当from 包 import * 语句导入模块儿时,只查找__all__中所有模块儿或者子包
说明:
__all__列表同样只在from mod import * 起作用

包的相对导入:
包的相对导入是指包内模块的相互导入
语法:
from 相对路径包或模块 import 属性或模块名

from 相对路径包或模块 import *
相对路径:
在from import语句和 from imoprt *语句中可以使
用相对路径
-

  • 代表当前目录

    • 代表上一级目录

      • 代表上二级目录

        • 以此类推
          注: 相对导入时不能超出包的外部

示例:

# file : mypack/games/contra.py

def play():
    print("正在玩魂斗罗....")

def gameover():
    # 调用mypack/menu.py里的show_menu

    # 1. 用绝对导入方式导入
    # from mypack.menu import show_menu
    # show_menu() 

    # 2. 用相对导入方式导入
    from ..menu import show_menu
    show_menu()

    # 调用mypack/games/tanks.py 里的play()
    # 1. 绝对导入
    # from mypack.games.tanks import play
    # 2. 相对导入
    # from .tanks import play
    from ..games.tanks import play
    # from ...mypack.games.tanks import play # 出错

    play()

print("魂斗罗模块被加载")

练习:

    1. 模拟斗地主发牌,牌共54张
      黑桃(’\u2660’), 梅花(’\u2663’), 红桃(’\u2666’)
      方块(’\u2665’)
      A2-10JQK
      大王,小王
      三个个,每人发17张牌,底牌留三张
      输入回车,打印第1个人的17张牌
      输入回车,打印第2个人的17张牌
      输入回车,打印第3个人的17张牌
      输入回车,显示三张底牌
      思路:
      #1.先循环把所有poker存在一个列表内
      #2.导入random.shffle()打乱顺序
      #3.分别切片17张,最后三张为底牌

原文地址:https://www.cnblogs.com/DylanSkyDanger/p/9833750.html

时间: 2024-10-07 10:56:28

(D13)Random模块-包的相关文章

python第十七天---时间模块、random模块

作完一个作业,开始新的学习: 有由今天的时间有限所有学习了以下两个模块,明天继续! 时间模块.random模块 import time 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 import time ,datetime 5 print(time.process_time())#测量处理器运算时间,不包括sleep时间 6 7 print(time.altzone)#返回与UTC时间的时间差 以秒计算 8

re模块 ,random模块

# 在python中使用正则表达式 # 转义符 : 在正则中的转义符 \ 在python中的转义符# 正则表达式中的转义 :# '\(' 表示匹配小括号# [()+*?/$.] 在字符组中一些特殊的字符会现出原形# 所有的 \w \d \s(\n,\t, ) \W \D \S都表示它原本的意义# [-]只有写在字符组的首位的时候表示普通的减号# 写在其他位置的时候表示范围[1-9]# 如果就是想匹配减号 [1\-9] # python中的转义符# 分析过程'\n' # \转义符 赋予这个n一个特

python 之 random 模块、 shutil 模块、shelve模块、 xml模块

6.12 random 模块 print(random.random()) (0,1)----float 大于0且小于1之间的小数 print(random.randint(1,3)) [1,3] 大于等于1且小于等于3之间的整数 print(random.randrange(1,3)) [1,3) 大于等于1且小于3之间的整数 print(random.choice ( [1,'23', [4,5] ] ) )   1或者23或者[4,5] print(random.sample( [1,'2

模块基础上半部分加 random 模块

目录 一.模块的四种形式 1.1 什么是模块 1.2 模块形式: 1.3 为什么要用模块 二.import 和 from...import... 2.1 import 模块名 2.2 from...import... 模块名 2.3 import 和 from...import...的异同 三.循环导入问题 四.模块的搜索路径 五.python文件的两种用途 六.random 模块 random 模块的使用方法 一.模块的四种形式 1.1 什么是模块 模块是一系列功能的集合体,而函数是某一个功能

模块讲解---time模块,datetime模块,random模块,hashlib模块和hmac模块,typing模块,requests模块,re模块

目录 1. 包 2. time模块 ??1. 优先掌握 2. 了解 3. datetime模块 ??1. 优先掌握 4. random模块 ??1. 优先掌握 ??2. 了解 5. hashlib模块和hmac模块 6. typing模块 7. requests模块 8. re模块 ??1. re模块的正则表达式的元字符和语法 ??2. 贪婪模式和非贪婪模式 ??3. 匹配邮箱实例 ??4. re模块中的常用功能函数 ??5. 修饰符 re.S ??6. 补充 目录 \1. 包 1. 优先掌握

python之random模块

random模块 用于生成随机浮点数.整数.字符串和随机抽取元素 方法: random()  生成一个随机浮点数,范围在0.0~1.0之间 uniform(上限,下限)  在设置的范围内,随机生成一个浮点数(上下限可以是整数,浮点数) randint(上限,下限)  在设定的范围内,随机生成一个整数(上下限必须为整数) choice(序列)  从任何序列中选取一个随机的元素返回 shuffle(序列)  随机打乱一个序列中元素的顺序 sample(序列,长度)  从指定的序列中随机截取指定长度的

time&datetime&random模块

import time 1.print(time.clock()) #返回处理器时间,3.3开始已废弃 , 改成了time.process_time()测量处理器运算时间,不包括sleep时间,不稳定,mac上测不出来 2.print(time.altzone) #返回与utc时间的时间差,以秒计算3.print(time.asctime()) #返回时间格式"Thu Apr 13 21:46:21 2017", 4.print(time.localtime()) #返回本地时间 的s

random 模块

random 模块包含许多随机数生成器,用于生成随机数 使用 random 模块获得随机数字 1. random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 import random print random.random() # 0.403805661236 2. random.uniform(a,b)用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a >= n >= b.如果 a

Python中的random模块,来自于Capricorn的实验室

Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <