Python基础知识入门(五)(一)

简介: 模块是一个包含所有定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数、变量等功能来完成数据处理。

一、模块应用

      模块是一个包含所有定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数、变量等功能来完成数据处理。


1.模块导入

      import a                 导入名称为 a 的模块,调用时使用 a.x (x为函数、变量名)进行调用,  例如:导入import random,调用random.randint()。


      from a import b     导入名称为 a 的模块中名称为 b 的函数或变量,调用时使用 b 直接调用,例如: 导入from random import randint ,调用randint()。


      from a import*       导入名称为 a 的模块所有方法,调用时直接使用函数或变量名进行调用,例如: 导入from  random import*,调用randint()。


2.模块别名

      import aaa as a  在使用过程中如名称太长,可用 as 修改模块名字,修改后用a.x进行调用,例如: import random as rd,调用rd.randint()。


3.__name__

      每个模块都有一个__name__属性,其值是'__main__'时,表明该模块自身在运行,否则是被引入。如不想让模块中的某些代码执行,可以用__name__属性来使程序仅调用模块中的一部分。

# YKH.py
print('我是 YKH 模块__name__值:'+__name__)
if __name__ == '__main__':
  print('YKH 模块被直接运行了')
# 我是 YKH 模块__name__值:__main__
# YKH 模块被直接运行

注意:


      __name__ == '__main__'在自身模块调用时,值为'__main__',


      且执行 if  __name__ == '__main__' 下所有内容。

# x.py
print('我是 x 模块__name__值:'+__name__)
if __name__ == '__main__':
  print('x 模块被直接运行了')
# y.py
import x
print('我是 y 模块__name__值:'+__name__)
if __name__ == '__main__':
  print('y 模块被直接运行了')
# 我是 x 模块__name__值 x
# 我是 y 模块__name__值__main__
# y 模块被直接运行

注意:    


      __name__ == '__main__'在自身模块调用时,值为'__main__',且执行if __name__ ==


'__main__' 下所有内容,调用其他模块时 __name__ 值为调入模块名,所以 __name__ 值不


为'__main__',故不会执行调入模块下if __name__ == '__main__' 下所有内容。


4.dir()函数

      内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回。

import random
print(dir(random))
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 
'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', 
'_Set', '__all__', '__builtins__', '__cached__', '__doc__', 
'__file__', '__loader__', '__name__', '__package__', '__spec__',
 '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', 
'_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', 
'_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 
'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 
'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 
'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 
'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 
'weibullvariate']

5.常用模块

1)random

函数

描述(import random)

 random()

在[0,1)范围内随机生成一个浮点数。

如random.random() 

 uniform(x,y)

[x,y]范围内随机生成一个浮点数。

如random.uniform(3,5)。

randint(x,y)

在指定范围内随机一个整数。

如random.randint(1,10)。

randrange([start,] stop [,step])

指定范围内按指定基数递增集合中获取一个随机数,默认值为 1。


start -- 指定范围内的开始值,包含在范围内。


stop -- 指定范围内的结束值,不包含在范围内。


step -- 指定递增基数。


如random.randrange(1, 100, 2)从 1-100 中选取一个奇数。

choice(x)

从序列x中随机挑选一个元素,x --可以是一个列表、元组、字符串。

如random.choice(range(10)),从0到9中随机挑选一个整数。

sample(x,y)

从序列中随机指定个数的元素。

如x = [1,2,3,4,5],random.sample(x,3)。

 seed([x])

改变随机数生成器种子,需在调用其他随机函数之前调用此函数。

如random.seed(8),提前指定种子数字为8。

 shuffle(x)

将序列x的所有元素随机排序。

如random.shuffle(x)。


2)time、datetime

函数

描述(import time)

time()

返回当前时间的时间戳(1970纪元后经过的浮点秒数)。

time.time(),返回 1668499929.629205 。

sleep(x)

推迟调用线程的运行,可通过参数x指秒数,表示进程挂起的时间。

time.sleep(3),延迟3秒后继续执行。

asctime(x)

返回一个可读的形式为"Tue(星期) Nov(月份) 15 06:56:32 2022"


(2022年11月15日 周二06时56分32秒)的24个字符的字符串 。time.asctime(),返回 Tue Nov 15 06:56:32 2022。


time.asctime(time.gmtime()),返回 Tue Nov 15 06:56:32 2022。


time.asctime(time.localtime()),返回 Tue Nov 15 06:56:32 2022。

ctime(x)

把时间戳(按秒计算的浮点数)转化为time.asctime()的形式。

如参数为None的时候,将会默认time.time()为参数。

time.ctime(),返回 Tue Nov 15 06:56:32 2022。


gmtime(x)

将一个时间戳转换为UTC时区(0时区)的struct_time,


如参数为None,默认time.time()为参数 。


ti


localtime(x)

类似gmtime(),作用是格式化时间戳为本地的时间。


如参数为None,默认time.time()为参数。


time.localtime(),返回 time.struct_time(tm_year=2022, tm_mon=11, tm_mday=15, tm_hour=7, tm_min=14, tm_sec=54, tm_wday=1, tm_yday=319, tm_isdst=0)


mktime(x)

与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,

返回用秒数来表示时间的浮点数。

x = (2022,11,15,6,56,32,1,319,0)
time.mktime(x),返回 1668495392.0 。


strftime(x)

格式化时间,返回可读字符串表示的当地时间,格式由参数 x 决定。

time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())

返回 2022-11-15 07:57:58 。


strptime(x)

根据指定的格式把一个时间字符串解析为时间元组。time.strptime("15 Nov 22 32 56 06", "%d %b %y %S %M %H")


返回 time.struct_time(tm_year=2022, tm_mon=11, tm_mday=15, tm_hour=6, tm_min=56, tm_sec=32, tm_wday=1, tm_yday=319, tm_isdst=-1) 。

3)math

函数

描述(import datetime)

now()

获取当前日期和时间 。

datetime.datetime.now(),返回 2022-11-16 06:06:16.112800 。

today()

获取当前日期和时间 。

datetime.date.today(),返回 2022-11-16 。

datetime.datetime.today(),返回 2022-11-16 08:27:33.373906 。

year

获取日期年 。

datetime.date.today().year ,返回 2022 。

datetime.datetime.today().year ,返回 2022 。

month

获取日期月 。

datetime.date.today().month,返回11 。

datetime.datetime.today().month,返回 11 。

day

获取日期日。

datetime.date.today().day,返回 16 。

datetime.datetime.today().day,返回16 。

hour

获取时间小时。

datetime.datetime.today().hour,返回 12 。 

minute

获取时间分钟。

datetime.datetime.today().minute,返回 13 。

second

获取时间秒数。

datetime.datetime.today().second,返回 15 。

isocalendar()

返回一个包含三个值的元组,三个值依次为:

年份,周数,星期数(周一为1…周日为7) 。

datetime.date.today().isocalendar() ,返回 (2022, 46, 3)。

weekday()

返回指定日期所在的星期数(周一为 0, 周日为 6 )

datetime.datetime.today().weekday(),返回 2 。

isoweekday()

返回符合ISO标准的指定日期所在的星期数(周一为1…周日为7)  。

datetime.datetime.today(). isoweekday(),返回 3 。

toordinal()

返回公元公历开始到现在的天数。公元1年1月1日为1 。

datetime.date.today().toordinal(),返回 738475。

timetuple()

将时间日期格式化,返回一个类型为time.struct_time的数组 。datetime.datetime.today().timetuple() ,


返回 time.struct_time(tm_year=2022, tm_mon=11, tm_mday=16,


tm_hour=8, tm_min=39, tm_sec=28, tm_wday=2, tm_yday=320, tm_isdst=-1)  

strftime(x)

格式化时间,返回可读字符串表示的当地时间,格式由参数 x 决定。

datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),

返回 2022-11-16 06:36:32 。

timedelta()

在指定日期时间基础上增加指定时

间和时间。datetime.datetime.now() + datetime.timedelta(days = 5)            加5天 。


datetime.datetime.now() + datetime.timedelta(days = -5)           减5天 。


datetime.datetime.now() + datetime.timedelta(hours=5)             加5小时 。


datetime.datetime.now() + datetime.timedelta(minutes=5)         加5分钟 。


datetime.datetime.now() + datetime.timedelta(seconds=300)    加5秒钟 。

struct_time元组属性如下:

属性

描述

tm_year

2022                                   年

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 - 夏令时 0 - 非夏令时    -1 - 未确定夏令时


时间日期格式化符号属性如下:

符号

描述

%a

本地简化星期名称 。

%A

本地完整星期名称 。

%b

本地简化的月份名称 。

%B

本地完整的月份名称 。

%c

本地相应的日期表示和时间表示 。

%C

年份的前两位。

%d

月内中的一天(0-31)。

%D

当前日期(11/15/22)

%e

每月的第几天。

%F

当前日期(2022-11-15)

%g

年份的后两位。

%G

当前日期年份。

%h

英文简写月份名。

%H

24小时制小时数(0-23)。

%I

12小时制小时数(01-12)。

%j

年内的一天(001-366)。

%m

月份(01-12)。

%M

分钟数(00-59)。

%p

本地A.M.或P.M.的等价符 。

%r

12小时时间(12:26:15 AM)

%R

显示当前时:分(08:27)。

%S

秒(00-59)。

%u

星期(0-6),每周第几天 。

%U

一年中的星期数(00-53) 。

%V

每年的第几周,使用基于周的年。

%w

星期(0-6),每周第几天 。

%W

一年中的星期数(00-53)。

%x

本地相应的日期表示 。

%X

本地相应的时间表示 。

%y

两位数的年份表示(00-99)。

%Y

四位数的年份表示(000-9999)。

%z

与utc时间的间隔 (如果不存在为空字符)

%Z

时区的名字(如果不存在为空字符)

%%

%号本身 。

3)math

函数

描述(import math)  

sqrt(x)

计算平方根,返回的数据为浮点型数据 。

math.sqrt(9),3.0 。

log(x,y)

计算对数,其中x为真数,y为底数 。

math.log(100,10),2.0 即 100是10^2 。

ceil(x) 

向上取整操作 。

math.ceil(1.23),2 。

floor(x)

向下取整操作 。

math.floor(1.50),1 。

pow(x,y)

计算 x 的 y 次方 。 

math.pow(2,3),8.0 。

fabs(x) 

计算一个数值的绝对值 。

math.fabs(-123),123.0 。

pi 

圆周率 π 。

math.pi,3.141592653589793 。

自然常数 e 。

math.e,2.718281828459045 。

trunc(x)

返回x的整数部分 。

math.trunc(12.36),12 。

modf(x)

返回x的小数和整数 。

math.modf(12.36),(0.35999......, 12.0) 。

fmod(x,y) 

取余 。

math.fmod(3,2),1.0 。

fsum(x)

返回序列中各元素之和 。

math.fsum([1,2,3,4,5]),15.0 。

factorial(x) 

返回x的阶乘 。

math.factorial(3),6 。

gcd(x,y) 

返回整数x和y的最大公约数 。

math.gcd(2,6),2 。


相关文章
|
17天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
22天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
18天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
17天前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
37 7
|
19天前
|
开发者 Python
Python中的装饰器:从入门到实践
本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
34 5
|
18天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
44 3
|
22天前
|
Python
Python编程入门:从零开始的代码旅程
本文是一篇针对Python编程初学者的入门指南,将介绍Python的基本语法、数据类型、控制结构以及函数等概念。文章旨在帮助读者快速掌握Python编程的基础知识,并能够编写简单的Python程序。通过本文的学习,读者将能够理解Python代码的基本结构和逻辑,为进一步深入学习打下坚实的基础。
|
25天前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
25天前
|
设计模式 缓存 开发者
Python中的装饰器:从入门到实践####
本文深入探讨了Python中强大的元编程工具——装饰器,它能够以简洁优雅的方式扩展函数或方法的功能。通过具体实例和逐步解析,文章不仅介绍了装饰器的基本原理、常见用法及高级应用,还揭示了其背后的设计理念与实现机制,旨在帮助读者从理论到实战全面掌握这一技术,提升代码的可读性、可维护性和复用性。 ####
|
29天前
|
存储 人工智能 数据挖掘
Python编程入门:打造你的第一个程序
本文旨在为初学者提供Python编程的初步指导,通过介绍Python语言的基础概念、开发环境的搭建以及一个简单的代码示例,帮助读者快速入门。文章将引导你理解编程思维,学会如何编写、运行和调试Python代码,从而开启编程之旅。
39 2