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 。


相关文章
|
7天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
8天前
|
Python
深入理解Python装饰器:从入门到实践####
本文旨在通过简明扼要的方式,为读者揭开Python装饰器的神秘面纱,从基本概念、工作原理到实际应用场景进行全面解析。不同于常规的摘要仅概述内容概要,本文将直接以一段精炼代码示例开篇,展示装饰器如何优雅地增强函数功能,激发读者探索兴趣,随后深入探讨其背后的机制与高级用法。 ####
38 11
|
5天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
5天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
5天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
4天前
|
设计模式 缓存 开发框架
Python中的装饰器:从入门到实践####
本文深入探讨了Python中装饰器的工作原理与应用,通过具体案例展示了如何利用装饰器增强函数功能、提高代码复用性和可读性。读者将学习到装饰器的基本概念、实现方法及其在实际项目开发中的实用技巧。 ####
17 3
|
7天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据科学中的应用:从入门到实践
本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
|
6天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
7天前
|
人工智能 数据挖掘 程序员
Python编程入门:从零到英雄
【10月更文挑战第37天】本文将引导你走进Python编程的世界,无论你是初学者还是有一定基础的开发者,都能从中受益。我们将从最基础的语法开始讲解,逐步深入到更复杂的主题,如数据结构、面向对象编程和网络编程等。通过本文的学习,你将能够编写出自己的Python程序,实现各种功能。让我们一起踏上Python编程之旅吧!
|
8天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第36天】本文将带你走进Python的世界,从基础语法出发,逐步深入到实际项目应用。我们将一起探索Python的简洁与强大,通过实例学习如何运用Python解决问题。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供有价值的指导和灵感。让我们一起开启Python编程之旅,用代码书写想法,创造可能。