当前位置: 首页 > 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博客

相关文章:

  • 辐射神经场算法——Instant-NGP / Mipi-NeRF 360 / 3D Gaussian Splatting
  • c语言数据结构--构造无向图(算法6.1),深度和广度遍历
  • day29--452. 用最少数量的箭引爆气球+435. 无重叠区间+763.划分字母区间
  • RABBITMQ的本地测试证书生成脚本
  • Windows右键没有新建Word、PPT与Excel的解决方法
  • vue + echart 饼形图
  • 每日刷题(二分图,二分查找,dfs搜索)
  • x.permute(0, 3, 1, 2).contiguous() 和 x.permute(0, 3, 1, 2)
  • C语言笔记29 •单链表经典算法OJ题-1.合并两个升序链表•
  • 在 PostgreSQL 里如何处理数据的归档和清理策略的优化?
  • Sentieon应用教程:本地使用-Quick_start
  • 笔记第二弹
  • 【BUG】已解决:JsonMappingException
  • 从零开始学习嵌入式---- C高级编译工具
  • FastAPI 学习之路(三十四)数据库多表操作
  • ----------
  • [译]如何构建服务器端web组件,为何要构建?
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • CSS 专业技巧
  • Cumulo 的 ClojureScript 模块已经成型
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • fetch 从初识到应用
  • HTTP请求重发
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • JAVA SE 6 GC调优笔记
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • nginx 负载服务器优化
  • Python_OOP
  • Redis 中的布隆过滤器
  • 闭包,sync使用细节
  • 前端面试之闭包
  • 前端知识点整理(待续)
  • 如何设计一个比特币钱包服务
  • 入手阿里云新服务器的部署NODE
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 一、python与pycharm的安装
  • 一些css基础学习笔记
  • 由插件封装引出的一丢丢思考
  • 智能合约开发环境搭建及Hello World合约
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​人工智能书单(数学基础篇)
  • # linux 中使用 visudo 命令,怎么保存退出?
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #QT项目实战(天气预报)
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (2.2w字)前端单元测试之Jest详解篇
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (BFS)hdoj2377-Bus Pass
  • (C#)一个最简单的链表类
  • (day 12)JavaScript学习笔记(数组3)
  • (JS基础)String 类型
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测