当前位置: 首页 > news >正文

Python(模块)

模块编写完成就可以被其他模块进行调用并使用被调用模块的功能。

import导入方式的语法结构:

import模块名称【as别名】

from……import导入方式的语法结构:

from模块名称,import变量/函数/类/*(*是通配符)

import test2  #自己创建一个test2.py文件就不会报错了,也可以修改名字,只要是。py结尾的就好
print(test2.name) #在test2文件中写入代码:name='xx'
test2.info()
#在test2文件中写入:
# def info():# print(f'hhh_{name}')import test2 as a
print(a.name)
a.info()
#这两种情况的结果完全一样#(2)from..import
from test2 import name #导入的是一个具体的变量名称
print (name)
# info() #NameError: name 'info' is not defined
from test2 import info
info()#通配符
from test2 import *
#以上代码可以导入模块中的所有
print(name)
info()#同时导入多个模块
import math,time,random

新建文件:

 add.py

name='xx'
age=18
def info():print(f'姓名:{name},年龄:{age}')
#通配符
from test2 import *
from add import *
#导入模块中具有同名的变量和函数,后导入的会将之前导入的进行覆盖
print(name)
info()#如果不想覆盖,解决方案,可以使用import
import test2
import add
#使用模块中的函数或变量时,模快名打点调用
test2.info()
add.info()

模块可以避免函数内变量名称相冲突的问题

包可以避免模块名称相冲突的问题

init.py文件内容

print('xxx')
print('yyy')

my_admin.py文件 

def info():print("abc")
name='xx'

add.py

import admin.my_admin as a #包名.模块名
a.info()#结果
# xxx
# yyy
# abcprint('-'*40)
from admin import my_admin as b #from 包名 import 模块 as 别名
b.info()# abcprint('-'*40)
from admin.my_admin import info #from模块名称,import变量/函数/类/*(*是通配符)
info()
# abcfrom admin.my_admin import *
print(name)
# xx

被调用文件的内容

# name='xx'
# print(name)
if __name__=='__main__':#阻止了全局变量的直接调用name='xx'print(name)#在导入其他模块时不希望执行的代码,就放在这里

调用文件的内容:

import test2

random 

import random
random.seed(10)
print(random.random())#0.5714025946899135#[0.0,1.0)
print(random.random())#0.4288890546751146
#按住ctrl点击random()可以查看内置文件random.py,在这里标量的一行,重复以上步骤,可以调出random.pyi
print('-'*40)
random.seed(10)
print(random.randint(1,100)) #[1,100]for i in range(10):#[m,n)步长为k,m-->start-->1,n-->stop-->10,k-->step-->,print(random.randrange(1,10,3))#start,stop,step #12行代码执行了10次print(random.uniform(1,100)) #[a,b]随机小数lst=[i for i in range(1,11)]
print(random.choice(lst)) #lst是列表,称为序列random.shuffle(lst)
print(lst)random.shuffle(lst)
print(lst)

time 

 

import time
now=time.time()
print(now)obj=time.localtime() #它是struct_time对象
print(obj)obj2=time.localtime(60)#60秒
print(obj2)
print(type(obj2))
print('年份:',obj2.tm_year)
print('月',obj2.tm_mon)
print('日',obj2.tm_mday)
print('时',obj.tm_hour)
print('分',obj2.tm_min)
print('秒',obj2.tm_sec)
print('星期',obj2.tm_wday)#[0,6]计算
print('今年的多少天',obj2.tm_yday)
print(time.ctime())#转化为简单容易读的字符串 wed oct 25 12:13:19 2023print(time.strftime('%Y-%m-%d',time.localtime()))#str-->字符串,f-->format
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('2008-08-08','%Y-%m-%d'))
# time.struct_time(tm_year=2008, tm_mon=8, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=221, tm_isdst=-1)time.sleep(20)#休眠,程序20秒后执行
print('hello')

datetime 

 

   

from datetime import datetime
#从模块中导入类
dt=datetime.now()
print('当前的系统时间',dt)#datetime是一个类,手动创建;类的对象
dt2=datetime(2028,8,8,20,8)
print('dt2的数据类型',type(dt2),'dt2所表示的日期时间',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('五月一日比十月一日早吗?',labor_day<national_day)#Ture#datetime类型与字符串类型进行转换
nowdt=datetime.now()
nowdt_str=nowdt.strftime('%Y/%m/%d %H:%M:%S')
print('nowdt的数据类型',type(nowdt),'nowdt所表示的数据是什么?',nowdt)
print('nowdt_str:的数据类型',type(nowdt_str),'nowdt_str所表示的数据是什么?',nowdt_str)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('st3的数据类型',type(dt3),'dt3所表示的数据',dt3)

from datetime import datetime
from datetime import timedelta
#创建两个datetime类型的对象
delta1=datetime(2028,10,1)-datetime(2028,5,1)
print('deta1的数量类型',type(delta1),'delta1所表示的数据是',delta1)
print('2028年5月1日之后的153是',datetime(2028,5,1)+delta1)
# deta1的数量类型 <class 'datetime.timedelta'> delta1所表示的数据是 153 days, 0:00:00
# 2028年5月1日之后的153是 2028-10-01 00:00:00
#通过传入参数的方式
dt1=timedelta(10)
print('创建一个10天的timedelta对象',dt1)
dt2=timedelta(10,11)
print('创建一个10天11秒的timedelta对象',dt2)
# 10 days, 0:00:11

下载与爬虫有关的模块的命令:win+r-->cmd-->pip install requests

卸载命令:pip uninstall requests

升级的命令:python -m pip install --upgrade pip

requests库,用于处理HTTP(超文本传输协议)请求的第三方库。

request库中的get()函数可以打开一个网路请求,并获取一个response响应对象,

响应结果中的字符串数据可以通过响应对象的text属性获取,响应结果中的二进制数据可以通过响应对象的content属性获取。

#爬取景区的天气预报
import requests
import re #使用正则表达式的模块
url='要爬取的网址'
resp=requests.get(url)
print(resp.text)
#设置为中文的编码格式
resp.encording='utf-8'
print(resp.text)a=re.findall('以span class=''……字样的格式字符串''格式字符串',resp.text)#将提取到的数据进行打包
lst=[]
for a,b,c,d in zip(a): #a可以是很多歌任意lst.append([a,b,c,d]) #四个变量,一个列表
print(lst)
for item in lst:print(item)

在要爬取的网页里鼠标右键最下面有一个《检查》找到左上角款款带小箭头的,点击,然后选择要爬取的部分,然后在检查的代码中找到span class=''……'',看它的类型。

只要中文的模式字符串用:[\u4e00-\u9fa5]*代替相应的中文

用.*代替任意字符串

import requests
url='图片网址'
resp=requests.get(url)#保存到本地
with open('logo.png','wb') as file:#logo.png-->名字,wb-->写到本地,b-->二进制file.write(resp.content)

相关文章:

Python(模块)

模块编写完成就可以被其他模块进行调用并使用被调用模块的功能。 import导入方式的语法结构&#xff1a; import模块名称【as别名】 from……import导入方式的语法结构&#xff1a; from模块名称&#xff0c;import变量/函数/类/*&#xff08;*是通配符&#xff09; impor…...

【八股文】Java基础篇

1. 和 equals的区别是什么&#xff1f; 判断两个变量或者实例是否都指向同一内存空间的值&#xff08;不仅值相同&#xff0c;地址也要相同&#xff09;equals是判断两个变量执行的内存空间的值是否相同&#xff08;值相同&#xff0c;地址可以不同&#xff09;&#xff0c;所…...

python rsa如何安装

Python中的一些模块是用一个包管理器来发布的&#xff0c;RSA模块就是&#xff0c;所以首先需要安装setup tools工具。 1、下载文件&#xff1a;ez_setup.py 2、安装&#xff1a; sudo python ez_setup.py 3、下载RSA安装包&#xff1a;rsa-3.1.1-py2.7.egg 4、安装RSA&…...

P10289 [GESP样题 八级] 小杨的旅游

Description 给定一棵 n n n 个点的树&#xff0c;每条边权值均为 1 1 1&#xff0c;树上有 k k k 个关键点&#xff0c;关键点们在 0 0 0 的时间内相互可达&#xff0c; q q q 次询问&#xff0c;求 s → t s\to t s→t 的最短路。 Analysis 考虑暴力建图&#xff0c;…...

网络编程 ----------- 4、组播与广播

1、广播 broadcast 广播是指向同一个网络中所有的主机传输数据只有传输层协议为 UDP协议时&#xff0c;才支持广播 TCP是端对端&#xff0c;广播是一对多 &#xff0c;所以无法符合其要求。 1&#xff09;广播地址 广播地址的计算&#xff1a; 子网掩码…...

最短路径算法:Bellman-Ford算法

引言 在图论中&#xff0c;Bellman-Ford算法是一种用于计算单源最短路径的算法。与Dijkstra算法不同&#xff0c;Bellman-Ford算法可以处理带有负权边的图&#xff0c;并且可以检测图中是否存在负权环。本文将详细介绍Bellman-Ford算法的定义、步骤及其实现。 Bellman-Ford算…...

爬虫:xpath模块及昵图网实例

xpath模块 from lxml import etreestr1 """ <div><ul><li class"item-0"><a href"link1.html">first item</a></li><li class"item-1"><a href"link2.html">second…...

高级java每日一道面试题-2024年8月03日-web篇-forward和redirect有什么区别?

如果有遗漏,评论区告诉我进行补充 面试官: forward和redirect有什么区别? 我回答: 在Java Web开发中&#xff0c;forward和redirect是Servlet容器提供的两种用于页面跳转的技术。它们的主要区别在于客户端感知的方式、URL地址的变化、请求对象的共享等方面。下面详细介绍两…...

如何让你的网站拥有更好的体验

在HTML中&#xff0c;属性是用于提供关于HTML元素的额外信息。接下来我们将讲解13个可以让用户拥有更好体验的HTML属性。 Accept 属性 我们可以在<input>元素&#xff08;仅适用于文件类型&#xff09;中使用accept属性来指定服务器可以接受的文件类型。 <input ty…...

opencascade AIS_TypeFilter AIS_XRTrackedDevice源码学习

opencascade AIS_TypeFilter 前言 通过它们的类型选择交互对象。该过滤器会对本地上下文中的每个交互对象提出问题&#xff0c; 以确定它是否具有非空的所有者&#xff0c;并且如果是&#xff0c;则检查它是否是所需类型。 如果对象在每种情况下都返回 true&#xff0c;则保留…...

使用Spring AOP监控指定方法执行时间

文章目录 一、加入pom依赖二、切面类和注解三、执行方法 一、加入pom依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>二、切面类和注解 import java.lang.…...

最新CSS3纵向菜单的实现

纵向菜单 通过下面例子&#xff0c;你会知道把列表转换成菜单的关键技术 a中的#是URL的占位符可以点击&#xff0c;真正用途中写实际URL <nav class"list1"><ul><li><a href"#">Alternative</a></li><li><…...

GooLeNet模型搭建

一、model import torch from torch import nn from torchsummary import summaryclass Inception(nn.Module):def __init__(self, in_channels, c1, c2 , c3 , c4):super(Inception, self).__init__()self.ReLU nn.ReLU()#路线1:1x1卷积self.p1_1 nn.Conv2d(in_channels i…...

使用ThreadLocal来存取单线程内的数据

一.什么是ThreadLocal&#xff1f; ThreadLocal&#xff0c;即线程本地变量。如果你创建了一个 ThreadLocal变量&#xff0c;那么访问这个变量的每个线程都会有这个变量的一个本地拷贝&#xff0c;多个线程操作这个变量的时候&#xff0c;实际是在操作自己本地内存里面的变量&…...

elasticsearch教程

1. 单点部署(rpm): #提前关闭firewalld,否则无法组建集群 #1. 下载ES rpm包 ]# https://www.elastic.co/cn/downloads #2. 安装es ]# rpm -ivh elasticsearch-7.17.5-x86_64.rpm #3. 调整内核参数(太低的话es会启动报错) echo "vm.max_map_count655360 fs.file-max 655…...

Arrays、Lambda表达式、Collection集合

1. Arrays 1.1 操作数组的工具类 方法名说明public static String toString(数组)把数组拼接成一个字符串public static int binarySearch(数组,查找的元素)二分查找法查找元素public static int[] copyOf(原数组,新数组长度)拷贝数组public static int[] copyOfRange(原数组…...

2024年前端趋势:全栈或许是不容错过的选择!

近年来&#xff0c;前端开发的技术不断推陈出新&#xff0c;2024年也不例外。在这个变化迅速的领域&#xff0c;全栈开发逐渐成为一股不容忽视的趋势。无论你是经验丰富的开发者&#xff0c;还是刚刚入门的新手&#xff0c;掌握全栈技术都能让你在竞争中脱颖而出。而在这个过程…...

MySQL 实战 45 讲(01-05)

本文为笔者学习林晓斌老师《MySQL 实战 45 讲》课程的学习笔记&#xff0c;并进行了一定的知识扩充。 sql 查询语句的执行流程 大体来说&#xff0c;MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器和执行器。 连接器负责接收客…...

仓颉编程语言入门 -- Array数组详解

仓颉编程语言入门 – Array数组详解 一. 如何创建Array数组 我们可以使用 Array 类型来构造单一元素类型&#xff0c;有序序列的数据。 1.仓颉使用 Array 来表示 Array 类型。T 表示 Array 的元素类型&#xff0c;T 可以是任意类型 , 类似于泛型的概念 var arr:Array<St…...

C#初级——简单单例模式使用

单例模式 单例模式是一种常用的软件设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取这个实例&#xff0c;通过单例模式防止私有成员被多次引用&#xff0c;防止数据被随意纂改。本文使用的是线程不安全的懒汉式单例。 创建单例模式 首…...

2024.07.29 校招 实习 内推 面经

地/球&#x1f30d; &#xff1a; neituijunsir 交* 流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 美/团// 快驴、小象、优/选/事/业/部2024年校/园/招聘&#xff08;内推&#xff09; 校招 | 美团快驴、小象、优选事业部2024年校园招聘&#xff08;内推&#xff…...

速盾:爬虫攻击和cc攻击的区别是什么?

爬虫攻击和CC&#xff08;Distributed Denial of Service&#xff09;攻击是网络安全领域两种不同类型的攻击方式。尽管它们都涉及对目标网站或服务器的非法访问&#xff0c;但它们的目的、方法和影响各不相同。在接下来的文章中&#xff0c;我们将详细介绍这两种攻击方式的区别…...

Tomcat与Nginx的区别详解

目录 引言Tomcat概述 Tomcat的历史Tomcat的架构Tomcat的功能Nginx概述 Nginx的历史Nginx的架构Nginx的功能Tomcat与Nginx的区别 架构上的区别...

【大模型从入门到精通5】openAI API高级内容审核-1

这里写目录标题 高级内容审核利用 OpenAI 内容审核 API 的高级内容审核技术整合与实施使用自定义规则增强审核综合示例防止提示注入的策略使用分隔符隔离命令理解分隔符使用分隔符实现命令隔离 高级内容审核 利用 OpenAI 内容审核 API 的高级内容审核技术 OpenAI 内容审核 AP…...

JVM系列 | 对象的消亡3——垃圾收集器的对比与实现细节

垃圾收集器 文章目录 各收集器简单对比收集器启动参数各收集器详细说明JDK 1.3 之前JDK 1.3 | SerialJDK 1.4 | ParNewJDK 1.4 | Parallel ScavengeJDK 5 | CMS 收集器JDK 7 | G1 各收集器简单对比 收集器名称出现时间淘汰时间目标采用技术线程数STW分代备注无名JDK 1.3之前JD…...

C# Unity 面向对象补全计划 七大原则 之 开闭原则(OCP) 难度:☆ 总结:已经写好的就别动它了,多用继承

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 本系列作为七大原则和设计模式的进阶知识&#xff0c;看不懂没关系 请看专栏&#xff1a;http://t.csdnimg.cn/mIitr&#xff0c;查漏补缺 1.开闭原则&#xff08;OC…...

微信防封指南请收好

一、新号与老号的添加限制 建议新注册的微信号主动添加好友的数量不宜过多&#xff0c;推荐每日添加不超过5个好友&#xff1b;对于老号&#xff0c;建议每日添加不超过20个好友。保持适度的添加速度&#xff0c;避免被系统判定为异常操作。 二、避免使用营销性词汇 在发送消…...

选择排序算法改进思路和算法实现

选择排序 在未排序的数组中&#xff0c;用第一个数去和后面的数比较&#xff0c;找出最小的数&#xff0c;和第一个数交换。第一个数已为已排序的数。 相当于0~7 从0~7中找到最小的数放在0 从1~7中找到最小的数放在1 从2~7中找到最小的数放在2 ...以此类推 从6~7中找到最…...

【文件解析漏洞复现】

一&#xff0e;IIS解析漏洞复现 1.IIS6.X 方式一&#xff1a;目录解析 搭建IIS环境 在网站下建立文件夹的名字为.asp/.asa 的文件夹&#xff0c;其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。 访问成功被解析 方式一&#xff1a;目录解析 在IIS 6处理文件解…...

【STL】 vector的底层实现

1.vector的模拟代码完整实现&#xff08;后面会拆分开一个一个细讲&#xff09; #pragma once #include<assert.h>// 抓重点namespace bit {/*template<class T>class vector{public:typedef T* iterator;private:T* _a;size_t _size;size_t _capacity;};*/templa…...