首页 > 其他分享 >第十章模块及常用的第三方模块

第十章模块及常用的第三方模块

时间:2024-08-03 16:27:58浏览次数:9  
标签:info 10 第十章 模块 time print import 第三方

模块

1、模块的导入
import导入方式的语法结构
import 模块名称 [as 别名]

from...import导入方式的语法结构
from 模块名称 import 变量/函数/类/*

点击查看代码
示例my_info
name='娟子姐'

def info():
    print(f'大家好,我叫{name}')

示例10-2模块的导入
#(1)import
import my_info
print(my_info.name)
my_info.info()


import my_info as a
print(a.name)
a.info()


#(2)from...import
from my_info import name#导入的是具体变量的名称
print(name)
#info()


from my_info import  info#导入的是一个具体函数的名称
info()

#(3)通配符
from my_info import *
print(name)
info

#同时导入多个模块
import math,time,random

#导入模块都有相同函数,后一个函数会将前一个覆盖,除非打点调用


示例 introduce
name='ysj'
age=18
def info():
    print(f'姓名{name},年龄{age}')


示例10-4模块的导入
from my_info import *
from introduce import *
#导入模块中具有同名的变量和函数,后导入的会将之前的覆盖
info()

#如果不能覆盖,解决方案可以使用import
import my_info
import introduce
#使用模块中的函数或变量时,模块名打点调用
my_info.info()
introduce.info()

2、Python中的包

 #主程序运行
 if_name_=='_main_':
      pass
点击查看代码
#%新建包new->Pathon Package(内涵#_init_.py文件)
#**在admin包内**
#_init_文件:
#print('版权:杨淑娟')
#print('讲师:ysj')

#my_admin文件:
#def info():
 #   print('大家好,我叫ysj,今年18岁')
#name='杨淑娟'

示例10-7包的导入
import admin.my_admin as a#包名.模块名 admin是包名,my_admin是模块名
a.info()

print('-'*40)
from admin import my_admin as b#from 包名import 模块as 别名
b.info()

print('-'*40)
from admin.my_admin import  info #from 包名.模块名 import 函数|变量等
info()

print('-'*40)
from admin.my_admin import *#from 包名.模块名 import *
print(name)

示例modle_a
# print('welcome to Beijing')
# name='ysj'
# print(name)

#main阻止了全局变量的值被输出执行
if __name__ == '__main__':
    print('welcome to Beijing')
    name='ysj'
    print(name)

示例modle_b
#导入的代码
import modle_a



Pathon中常用的内置模块

1、random模块

点击查看代码
示例10-11random模块的使用
#导入
import random
#设置随机数种子,随机数种子相同产生的随机数也相同
random.seed(10)
print(random.random())#第一个random是模块名,第二个是函数名#[0.0,1.0)
print(random.random())
print('-'*50)
random.seed(10)
print(random.randint(1,100))#[1,100]

for i in range(10):#[m,n)步长为k,m-->start-->1,k-->step-->3,n-->stop-->10
    print(random.randrange(1,10,3))#12行代码被执行10次

print('-'*50)
print(random.uniform(1,100))#[a,b]随机小数

lst=[i for i in range(1,10)]
print(random.choice(lst))#lst是列表,也称为序列

#随机排序
random.shuffle(lst)
print(lst)

random.shuffle(lst)
print(lst)

2、time模块

点击查看代码
示例10-12time模块的使用
import time
now=time.time()
print(now)

obj=time.localtime()#struct_time对象
print(obj)

obj2=time.localtime(60)#60秒 1970年,1月1日,8时1分8秒
print(obj2)
print(type(obj))

print('年份:',obj2.tm_year)
print('月份:',obj2.tm_mon)
print('日期:',obj2.tm_mday)
print('时',obj2.tm_hour)
print('分',obj2.tm_min)
print('秒',obj2.tm_sec)
print('星期',obj2.tm_wday)#[0,6]3表示星期四,2表示星期三
print('今年第几天',obj2.tm_yday)
print(time.ctime())#时间戳对应的易读的字符串


#日期时间格式化
print(time.strftime('%Y-%m-%d',time.localtime()))#str-->字符串,f-->format,time-->时间
print(time.strftime('%H:%M:%S',time.localtime()))
print('%B月份的名称',time.strftime('%B',time.localtime()))
print('%A星期的名称:',time.strftime('%A',time.localtime()))

#字符串转为struct_time
print(time.strptime('2000-08-08','%Y-%m-%d'))

time.sleep(20)#程序暂停20秒
print('helloworld')

3、datetime模块

点击查看代码
示例10-13datetime模块
from datetime import datetime#从datetime模块中导入datetime类
dt=datetime.now()
print('当前的系统时间为',dt)

#datetime是一个类,手动创建这个类的对象
dt2=datetime(2020,8,8,20,8)
print('dat2的数据类型为',type(dt2),'dat2所表示的时间为',dt2)

print('年',dt2.year,'月',dt2.month,'日',dt2.day)
print('时间',dt2.hour,'分',dt2.month,'秒',dt2.second)

#比较两个datetime类型对象的大小
labor_day=datetime(2028,5,1,0,0,0)
national_day=datetime(2028,10,1,0,0,0)
print('2028年5月1日比2028年10月1日小吗?',labor_day<national_day)#True


#datetime与字符串进行转换
nowdt=datetime.now()
nowdt_str=nowdt.strftime('%Y/%m/%d/ %H:%M:%S')
print('nowdt_str的数据类型',type(nowdt_str),'nowdt_str所表示的数据是什么',nowdt_str),

#字符串转为datetime类型
str_datetime='2028年8月8日 20点8分'
dt3=datetime.strptime(str_datetime,'%Y年%m月%d日 %H点%M分')
print('str_datetime的数据类型为',type(str_datetime),'str_datetime所表示的数据为',str_datetime)
print('dt3的数据类型为',type(dt3),'dt3所表示的数据为',dt3)

示例10-14timedelta类的使用
from datetime import datetime
from datetime import timedelta
#创建两个datetime类型的对象
deltal=datetime(2028,10,1)-datetime(2028,5,1)
print('daltal的数据类型为',type(deltal),'daltal的所表示的数据为',deltal)
print('20285月1日年之后的153天是',datetime(2028,5,1)+deltal)


#通过传入参数的方式创建一个timedelta对象
td1=timedelta(10)
print('创建10天的timedelta对象',td1)
td2=timedelta(10,11)
print('创建10天11秒的timedelta对象',td2)


第三方模块思维安装与卸载


1、requests库

点击查看代码
示例10-15爬取景区天气预报
import requests
import  re
url = 'http://www.weather.com.cn/weather1d/101010100.shtml'#爬虫打开的浏览器上的网页
resp= requests.get(url) #打开浏览器打开网址
#设置一下编码格式
resp.encoding='utf-8'
print(resp.text)#resp响应,对象名.属性名 resp.text

city=re.findall('<span class="name">([\u4e00-\u9fa5]*)</span>',resp.text)
weather=re.findall('<span class="weather">([\u4e00-\u9fa5]*)</span>',resp.text)
wd=re.findall('<span class="wd">(.*)</span>',resp.text)
zs=re.findall('<span class="zs">([\u4e00-\u9fa5]*)</span>',resp.text)
print(city)
print(weather)
print(wd)
print(zs)

lst=[]
for a,b,c,d in zip(city,weather,zs,wd):
    lst.append([a,b,c,d])
print(lst)
for item in lst:
    print(item)
'''
<span class="name">三亚</span>
<span class="weather">多云转雷阵雨</span>
<span class="wd">32/27℃</span>
<span class="zs">适宜</span>
'''
示例10-16爬取百度LOGO图片
import requests
url = 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png'
resp=requests.get(url)
#保存到本地
with open('logo.png', 'wb') as file:
    file.write(resp.content)

2、openpyxl库

点击查看代码
示例weather
  import requests
import re

#定义函数
def get_html():
    url = 'http://www.weather.com.cn/weather1d/101010100.shtml'#爬虫打开的浏览器上的网页
    resp= requests.get(url) #打开浏览器打开网址
    #设置一下编码格式
    resp.encoding='utf-8'
    return resp.text

def parse_html(html_str):#解析
    city=re.findall('<span class="name">([\u4e00-\u9fa5]*)</span>',html_str)
    weather=re.findall('<span class="weather">([\u4e00-\u9fa5]*)</span>',html_str)
    wd=re.findall('<span class="wd">(.*)</span>',html_str)
    zs=re.findall('<span class="zs">([\u4e00-\u9fa5]*)</span>',html_str)

    lst=[]
    for a,b,c,d in zip(city,weather,zs,wd):#封装
        lst.append([a,b,c,d])

    return lst
示例10-18将数据存储到Excle中
import weather
import openpyxl
html=weather.get_html()#发请求,得响应结果
lst=weather.parse_html(html)#解析数据
#创建一个新的Excle工作簿
workbook = openpyxl.Workbook()#创建对象
#在Excle文件中创建工作表
sheet = workbook.create_sheet('景区天气')
#向工作表中添加数据
for item in lst:
    sheet.append(item)#一次添加一行

workbook.save('景区天气.xlsx')

示例10-19从Excle中读取数据
import openpyxl
#打开工作簿
workbook=openpyxl.load_workbook('景区天气.xlsx')
#选择要操作的工作表
sheet=workbook['景区天气']
#表格数据是二维列表,先遍历的是行,后遍历的是列
lst=[]#存储的是行数据
for row in sheet.rows:
    sublst=[]
    for cell in row:
        sublst.append(cell.value)
    lst.append(sublst)

for item in lst:
    print(item)

3、其他库

点击查看代码
示例10-20从PDF中提取数据
import pdfplumber
#打开pdf文件
with pdfplumber.open('小学数学公式.pdf') as pdf:
    for i in pdf.pages:#遍历页
        print(i.extract_text())#extract_text()方法提取内容
        print(f'-----第{i.page_number}页结束')

标签:info,10,第十章,模块,time,print,import,第三方
From: https://www.cnblogs.com/pl-blog1/p/18319778

相关文章

  • 在Windows 11上导入shout模块时缺少dll错误
    经过大量研究,我终于在Windows11上安装了python-shout没有使用msys2/mingw。安装模块的setup.py文件是:#distutilsbuildscript#Toinstallshout-python,run'pythonsetup.pyinstall'fromsetuptoolsimportsetup,Extensionimportosimportsysimpo......
  • ModuleNotFoundError:bash 中没有名为“selenium”的模块
    我格式化了MacbookPro,并从头开始重新安装了所有内容(BigSurOS)。现在,我陷入了bash无法正确运行模块的困境。仅供参考,如果我在zsh中运行它,执行效果很好。importosimporttime#importingwebdriverfromseleniumfromseleniumimportwebdriverfromwebdriver_ma......
  • 虎牙弹幕逆向+整合虎牙第三方
    ​声明:本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wxa15018601872       本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲......
  • Node.js path模块
    在Node.js中,path模块用于处理和转换文件路径。以下是一些常用的path模块方法及其说明:path.basename(path[,ext])返回路径中的最后一部分,即文件名。示例:constpath=require('path');console.log(path.basename('/foo/bar/baz/asdf/quux.html'));//输出:'quux.htm......
  • nodejs使用child_process模块启动(exec和spawn)子线程任务,子进程实例的kill()方法无效的
    以下内容在win10环境下的执行分析(这里就不对进程和线程做区分了):child_process.exec和child_process.spawn启动进程的区别。shell<string>Shelltoexecutethecommandwith.SeeShellrequirementsandDefaultWindowsshell.Default:'/bin/sh'onUnix,process.env.C......
  • HTML侧边部分内容滑动跟随 左侧跟随滚动模块代码
    网站是左右两列板块布局,左侧规划了客服代码,当鼠标下拉的时候,微信客服代码会出现上移的情况。为了提高转化,希望左侧客服模块跟随内容滚动。网站左侧跟随滚动模块这是截止目前最简单、高效的方法,代码简洁。代码<divid="box"><divid="float"class="div1">在这里放......
  • 深入探索EPSA:提升卷积神经网络性能的新式注意力模块
     原论文地址:https://arxiv.org/abs/2105.14447摘要摘要部分提出了一种新的注意力模块——金字塔分割注意力(PSA)模块,该模块通过替代ResNet瓶颈块中的3x3卷积,显著提升了模型性能。PSA模块能够作为即插即用组件,增强网络的多尺度表征能力,使EPSANet在多个计算机视觉任务上超越了......
  • nginx模块ngx_http_geoip2_module
    /home/bby/nginx-1.26.0/modules/ngx_http_geoip2_module-3.4 ./configure--prefix=/usr/local/nginx\--with-compat\--with-debug\--with-pcre-jit\--with-http_ssl_module\--with-http_stub_status_module\--with-http_realip_module\--with-http_auth_req......
  • 无缝融入,即刻智能[1]:MaxKB知识库问答系统,零编码嵌入第三方业务系统,定制专属智能方案,用
    无缝融入,即刻智能[1]:MaxKB知识库问答系统,零编码嵌入第三方业务系统,定制专属智能方案,用户满意度飙升1.简介MaxKB(MaxKnowledgeBase)是一款基于LLM大语言模型的开源知识库问答系统,飞致云是中国领先的开源软件公司。飞致云旗下开源产品包括1Panel开源面板、JumpServer开源......
  • ARINC429模块技术指标
    ARINC429模块作为一种广泛应用于航空电子系统的数据总线接口模块,‌其技术指标涵盖了多个方面,‌以确保在复杂环境中的稳定、‌可靠通信。‌以下是对ARINC429模块技术指标的详细阐述。一、‌概述ARINC429总线协议由美国航空电子工程委员会(‌AirlinesEngineeringCommittee)‌于197......