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

爬虫学习前记----Python

引言

1.语言:python

2.学习资源:【Python+爬虫】

3.爬虫日记:

python内容

1.字符串输出

(1)引号问题

print("python")
输出:pythonprint('python')
输出:pythonprint('python"学习"')
输出:python"学习"print("python\"学习\"") #转义
输出:python"学习"

(2)换行问题

-----print函数自动换行-----
-----    \n 增加换行 -----输出:python学习【错误的示例】
print("python
学习") 【正确】
print("""python
学习""")

(3)字符串拼接

print("python"+"学习")
输出:python学习

(4)输出变量内容

hello="您好!"
print(hello + "我是李明")
输出:您好!我是李明

2.函数调用

在文件开头引用'库'

在调用时格式为:库名.库函数(参数)

import mathmath.sqrt(4)

3.注释

(1) #

# print(1)
# print(2)
# print(3)

注:多段代码被注释掉时,可以用快捷键[Ctrl+/]

(2)写入长注释时

'''
你好
你好
这是注释
'''"""
这也是
注释
"""

4.字符串

(1)len获取长度

a = len("\n")     ---1
b = len("你好")   ---2
c = len("hello")  ---5

(2)字符串的某个字符

d = "abcdef"
print(d[1])  ---b

5.type数据类型

(1)type查看数据类型

print(type("abc")) ---<class 'str'>
print(type(True)) ---<class 'bool'>

(2)转换

str(123)
int("456")

6.输入

i = input("请输入")

注意:输入的为字符串格式

7.if

i = input("请输入")if int(i) == 1:print("接收到了1")
elif 1 < int(i) <= 10:print("接收到1<x<10")
else:print("没有接收到目标")

8.逻辑运算

[ 优先级:not > and > or ]

(1)or 

if i == 1 or i == 2 or i == 3:print("接收到了{1,2,3}")

(2)and

if i == 1 and j == 0:print("i=1 j=0")

(3)not (只能接一个)

if not i == 1:print("没接收到1")

9.列表

''' 在列表末尾添加新的对象 '''
list1.append(1)  
''' 统计某个元素在列表中出现的次数 '''
list1.count(1)  
''' 拼接 '''
list1 = list1 + list2
''' 从列表中找出某个值第一个匹配项的索引位置 '''
list1.index(11)  
''' 将100插入列表index=0 '''
list1.insert(0, 100)  
''' 移除列表中100的第一个匹配项 '''
list1.remove(100)  
''' 反向列表中元素 '''
list2.reverse()  
'''  对原列表进行排序 '''
list1.sort() 
''' 读取列表中第三个元素 '''
print(list1[2]) 
''' 读取列表中倒数第二个元素 '''
print(list1[-2])  
''' 从第二个元素开始截取列表 '''
print(list1[1:])  

10.字典

dict1={"1":"yi"}
dict1["2"]="er"

[ 注意 ] a:b键值对中: a是键,b是值 。

键还能是元组:

dict1={"1":"yi"}
dict1["2"]="er"
tuple1=("张伟",18)
tuple2=("张伟",19)
dict1[tuple1]="137000000"
dict1[tuple2]="180000000"

11.range

计算:1 + 2 + ... + 100
for i in range(1, 101):  total = total + 1

等价于

for(int i=1;i<101;)total+=i;

12.while

while i >= 100:print("i>=100")

13.类

class Employee:def __init__(self, name, jd):self.name = nameself.id = iddef print_info(self):print(f"员工名字:{self.name},工号:{self.id}")class FullTimeEmployee(Employee):def __init__(self, name, id, monthly_salary):super().__init__(name, id)self.monthly_salary = monthly_salarydef calculate_monthly_pay(self):return self.monthly_salaryclass PartTimeEmployee(Employee):def __init__(self, name, id, daily_salary, work_days):super().__init__(name, id)self.daily_salary = daily_salaryself.work_days = work_daysdef calculate_monthly_pay(self):return self.daily_salary * self.work_days

(1)类构造

class name:

        def __inti__(self,其他参数...):

                构造函数操作...

(2)类继承

class A(B): #A是继承了B的子类

(3)子类继承且改编父类的构造函数

def __init__(self, name, id, daily_salary, work_days):
        super().__init__(name, id)

        其他操作...

14.文件

(1)路径

绝对路径

/user/demo/data.txt

相对路径

../tmp

(2)open("a.txt","r",encoding="utf-8")

f = open("a.txt", "r", encoding="utf-8")
print(f.read())
f.close()

注:当前这次读完后,系统会记录读到的位置,然后下次调用read函数将返回继续增加的内容。读完后一定要close!

或者(with as 自动关闭):

with open("a.txt") as f:print(f.read())

读字节

print(f.read(10))  # 指定10字节

读一行  --可搭配while使用

print(f.readline())  

全部读

lines=f.readlines()
for line in lines:print(line)

(2)open("a.txt","w",encoding="utf-8")

特点:

(1)区别于"r":只写模式下,若没找到指定文件,则创建文件。

(2)“w”模式下,write函数覆盖掉文件中所有内容!

(3)write函数不自动加换行,需手动\n

(4)不能读原本的内容(即read函数)

(3)open("a.txt","a",encoding="utf-8")

特点:

(1)区别于"w":附加模式下,write函数在文件内容的末尾写入

(2)write函数不自动加换行,需手动\n

(3)若没找到指定文件,则创建文件。

(4)不能读原本的内容(即read函数)

(4)open("a.txt","r+",encoding="utf-8")

(1)可读可写

(2)write函数不自动加换行

(3)若没找到指定文件,会报错!

15.捕捉异常

try:user_weight = float(input("请输入您的体重(单位:kg)"))user_height = float(input("请输入您的身高(单位: m):"))user_BMI =user_weight /user_height ** 2
except ValueError:print("输入不为合理数字,请重新运行程序,并输入正确的数字。")
except ZeroDivisionError:print("身高不能为零,请重新运行程序,并输入正确的数字。")
except:print("发生了未知错误,请重新运行程序。")
else:print("您的BMI值为:"+str(user_BMI))
finally:print("程序结束")

16.测试代码unittest

Python之unittest框架的介绍及使用_python unittest abc-CSDN博客

相关文章:

爬虫学习前记----Python

引言 1.语言&#xff1a;python 2.学习资源&#xff1a;【Python爬虫】 3.爬虫日记&#xff1a; python内容 1.字符串输出 (1)引号问题 print("python") 输出&#xff1a;pythonprint(python) 输出&#xff1a;pythonprint(python"学习") 输出&…...

详解Go语言中的Goroutine组(Group)在项目中的使用

背景(Why) Go语言通过其内置的goroutine和通道&#xff08;channel&#xff09;机制&#xff0c;提供了强大的并发支持。goroutine的开销非常低&#xff0c;一个goroutine仅占用几KB的内存&#xff0c;可以轻松创建成千上万个goroutine来处理并发任务。然而&#xff0c;随着并…...

Linux桌面环境手动编译安装librime、librime-lua以及ibus-rime,提升中文输入法体验

Linux上的输入法有很多&#xff0c;大体都使用了Fcitx或者iBus作为输入法的引擎。相当于有了一个很不错的“地基”&#xff0c;你可以在这个“地基”上盖上自己的“小别墅”。而rime输入法&#xff0c;就是一个“毛坯别墅”&#xff0c;你可以在rime的基础上&#xff0c;再装修…...

一文入门【NestJs】Providers

Nest学习系列 ✈️一文入门【NestJS】 ✈️一文入门【NestJs】Controllers 控制器 &#x1f6a9; 前言 在NestJS的世界里&#xff0c;理解“Providers”是构建健壮、可维护的后端服务的关键。NestJS&#xff0c;作为Node.js的一个现代框架&#xff0c;采用了Angular的一些核…...

云原生(Cloud native)

云原生&#xff08;Cloud native&#xff09; 一 定义 目前比较权威的定义主要来自Pivotal公司和云原生计算基金会&#xff08;Cloud Native Computing Foundation&#xff0c;简称CNCF&#xff09;。 1.1 Pivotal 4个要点&#xff1a; DevOps、持续交付、微服务、容器化。六…...

JVM OutOfMemoryError异常模拟

1.Java堆溢出 Java堆用于储存对象实例&#xff0c;我们只要不断地创建对象&#xff0c;并且保证 GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象&#xff0c;那么随着对象数量的增加&#xff0c;总容量触及最大堆的容量限制后就会 产生内存溢出异常。 限制Java …...

架构师机器学习操作 (MLOps) 指南

MLOps 是机器学习操作的缩写&#xff0c;是一组实践和工具&#xff0c;旨在满足工程师构建模型并将其投入生产的特定需求。一些组织从一些自主开发的工具开始&#xff0c;这些工具在每次实验后对数据集进行版本控制&#xff0c;并在每个训练周期后对检查点模型进行版本控制。另…...

【学习笔记】虚幻SkeletalMesh学习(一)基础介绍

文章目录 零、前言一、资源介绍1.1 骨架资源1.2 骨架网格体资源 二、UE4中的定义2.1 骨骼数据2.2 模型网格数据 三、渲染3.1 RenderData的初始化3.2 渲染对象的创建3.3 渲染对象的更新3.3.1 游戏线程的更新&#xff08;*FSkeletalMeshObjectGPUSkin::Update*&#xff09;3.3.2 …...

Apache防盗链、网页压缩、网页缓存

目录 网页压缩 类型 示例 动态添加模块操作步骤 重装Apache操作步骤 网页缓存 示例 操作步骤 隐藏版本信息 操作步骤 Apache防盗链 定义 原理 配置防盗链实验环境 实验环境 本地图片盗链示例 操作步骤 防盗链示例 操作步骤 网页压缩 网站的访问速度是由多个…...

LocalAI - 笔记

1.localAI https://localai.io/ 2 使用笔记本电脑搭建本地LLMs大模型环境 使用笔记本电脑搭建本地LLMs大模型环境 - 大模型知识库|大模型训练|开箱即用的企业大模型应用平台|智能体开发|53AI 3LocalAI视频 【LocalAI】&#xff08;3&#xff09;&#xff1a;超级简单&…...

Windows图形界面(GUI)-SDK-C/C++ - 编辑框(edit)

公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 编辑框(edit) 控件样式 创建控件 初始控件 消息处理 示例代码 编辑框(edit) 控件样式 编辑框&#xff08;Edit Control&#xff09;是Windows中最常用的控件之一&#xff0c;用于接收用户…...

区块链学习05-web3中solidity和move语言

Solidity 和 Move 语言的比较&#xff1a;Web3 开发中的两种选择 Solidity 和 Move 都是用于开发区块链平台智能合约的编程语言。它们具有一些相似之处&#xff0c;但也存在一些关键差异。 相似之处: Solidity 和 Move 都是图灵完备语言&#xff0c;这意味着它们可以表达计算…...

web滚动页面到指定位置

方法&#xff1a;scrollTo(x-coord,y-coord) 方法是Web API中Element接口的一部分&#xff0c;但它主要用于Window对象或可滚动的元素&#xff08;如具有overflow属性为auto或scroll的<div>&#xff09;。此方法用于将窗口滚动到文档中的特定位置&#xff0c;或者将某个元…...

操作系统真象还原:实现文件写入

14.7 实现文件写入 这是一个网站有所有小节的代码实现&#xff0c;同时也包含了Bochs等文件 本节要实现的 sys_write 是系统调用 write 的内核实现&#xff0c;咱们之前的 write 是个简易版&#xff0c;它是为了临时完成输出打印的功能&#xff0c;不支持文件描述符。如今要让…...

FastAPI 学习之路(四十九)WebSockets(五)修复接口测试中的问题

其实代码没有问题&#xff0c;但是我们忽略了一个问题&#xff0c;就是在正常的开发中&#xff0c;肯定是遇到过这样的情况&#xff0c;我们频繁的有客户端链接&#xff0c;断开连接&#xff0c;需要统一的管理这些链接&#xff0c;那么应该如何管理呢。其实可以声明一个类去管…...

STM32智能楼宇照明系统教程

目录 引言环境准备智能楼宇照明系统基础代码实现&#xff1a;实现智能楼宇照明系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;楼宇照明管理与优化问题解决方案与优化收尾与总结 1. 引言 智能楼宇照明系…...

【C语言】原码、反码、补码详解 -《码上有道 ! 》

目录 原码、反码、补码详解及其在C语言中的应用一、原码&#xff08;Sign-Magnitude&#xff09;1.1 定义与表示1.2 历史来源与作用1.3 示例1.4 C语言示例1.5 代码运行结果 二、反码&#xff08;Ones Complement&#xff09;2.1 定义与表示2.2 历史来源与作用2.3 示例2.4 C语言…...

C++找到错误的具体信息

fprintf(stderr, "Errno: %d, Error message: %s\n", errno, strerror(errno));为什么不用printf来打印输出&#xff1f; 使用 fprintf(stderr, …)&#xff0c;将错误消息输出到标准错误流 stderr。这种做法是为了将错误信息输出到一个专门用于记录错误的流中&…...

Windows 安装Zookeeper

安装 下载地址&#xff1a;Apache ZooKeeper 我下载的版本&#xff1a;zookeeper-3.4.12 下载后&#xff0c;解压 配置 1、 在D:\zookeeper-3.4.12文件夹中创建一个“data”文件夹和“log”文件夹 2、 复制zoo_sample.cfg&#xff0c;改名&#xff1a;zoo.cfg 修改zoo.c…...

从人工巡检到智能预警:视频AI智能监控技术在水库/河湖/水利防汛抗洪中的应用

一、背景需求分析 近日&#xff0c;我国多省市遭遇连日暴雨&#xff0c;导致水库、湖泊、河道等水域水位暴涨&#xff0c;城市内涝频发。随着夏季汛期的到来&#xff0c;降雨天气频繁&#xff0c;水利安全管理面临严峻挑战。为保障水库安全、预防和减少洪涝灾害&#xff0c;采…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...