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

北京网站建设推广seo网站有优化培训班吗

北京网站建设推广,seo网站有优化培训班吗,用哪个网站做相册视频文件,厦门物业备案建设局登什么网站Python语言,总给我一种“嗯?还能这么玩儿?”的感觉 Python像一个二三十岁的年轻人,自由、年轻、又灵活 欢迎一起进入Python的世界~ 本人工作中经常使用Python,针对一些常用的语法概念进行持续记录。 目录 一、类与常…

Python语言,总给我一种“嗯?还能这么玩儿?”的感觉

Python像一个二三十岁的年轻人,自由、年轻、又灵活

欢迎一起进入Python的世界~

本人工作中经常使用Python,针对一些常用的语法概念进行持续记录。

目录

一、类与常见数据结构

1. Python库、模块、类

1) Python库

2) Python模块

 3) Python类

2. Python基本数据结构

1) 列表(List)

2) 元组(Tuple)

3) 字典(Dictionary)

4) 集合(Set)

二、Python进行HTTP请求

1. 示例代码

2. JSON数据处理

1) json.dumps转为json串

2) json.loads转为字典

三、Python文件处理

1. 文件目录:os模块

2. 读取与写入:open函数

3. 处理Excel:openpyxl库


一、类与常见数据结构

1. Python库、模块、类

Python库是一个集合,包含多个模块。模块是单个文件,包含函数、类和变量等。类是模块中的一个组件,用于定义对象的结构和行为。简而言之,库由模块组成,模块由类和其他代码组成。

1) Python库

  • Python库是一组模块的集合,通常是为了实现特定的功能或解决特定的问题而组织在一起的。库可以是一个包(Package),包是一种特殊的模块,可以包含多个子模块和子包。
  • 库用于提供一组相关的功能,这些功能通常比单个模块更复杂、更全面。库可以是第三方库,也可以是Python标准库的一部分。

2) Python模块

在了解Python类与基本数据结构之前,需要了解Python类到底在该语言中处于怎样的位置,即Python类与具体的Python文件之间是什么关系。

Python文件和类的关系:Python文件和类的关系可以类比为容器和内容物的关系。一个Python文件可以包含一个或多个类的定义,也可以包含其他代码,如函数、变量等。

  • 一个Python文件称为一个模块。模块是Python代码的基本组织单位。(模块的名称通常与文件名相同。例如,文件 my_module.py 定义了一个模块 my_module 
  • 在模块中可以定义类:这些类可以相互独立,也可以相互关联。
  • 导入模块和类:可以使用import导入整个模块,然后通过模块名访问其中的类、函数和变量。同样,也可以使用 from ... import ... 语句直接导入模块中的指定类。

 3) Python类

使用class关键词来定义一个类:

class MyClass:# 类的属性attribute1 = "value1"attribute2 = "value2"# 类的方法def my_method(self):print("Hello from my_method!")

创建实例,通过类名后跟一对括号创建实例:

my_instance = MyClass()
print(my_instance.attribute1)  # 输出: value1
my_instance.my_method()  # 输出: Hello from my_method!

初始化方法:

__init__方法是一个特殊的方法,被成为类的构造函数或初始化方法。当创建一个新的对象实例时,__init__方法会被自动调用。

2. Python基本数据结构

Python提供了几种内置的基本数据结构,这些数据结构在日常编程中非常有用。以下是一些常见的Python基本数据结构及其详细说明:

1) 列表(List)

列表是一种有序的集合,可以包含不同类型的元素。列表是可变的,这意味着你可以修改列表中的元素。

以下代码包含了 创建列表、插入元素和删除元素 的逻辑:

# 1. 创建列表:
my_list = [1, 2, 3, 4, 5]
my_list = ['apple', 'banana', 'cherry']
my_list = [1, 'apple', 3.14, True]# 2. 插入元素:
my_list = [1, 2, 3]# 在列表末尾插入一个元素
my_list.append(4)  # [1, 2, 3, 4]# 在列表指定位置插入一个元素
my_list.insert(1, 'a')  # [1, 'a', 2, 3, 4]# 在列表末尾一次性添加多个元素
my_list.extend([5, 6])  # [1, 'a', 2, 3, 4, 5, 6]# 3. 删除元素:
my_list = [1, 'a', 2, 3, 4, 5, 6]# 删除第一个值为 x 的元素
my_list.remove('a')  # [1, 2, 3, 4, 5, 6]# 删除指定位置的元素,并返回该元素。如果不指定位置,默认删除最后一个元素
my_list.pop(2)  # [1, 2, 4, 5, 6],返回3# 删除最后一个位置的元素
my_list.pop()  # [1, 2, 4, 5],返回6# 清空列表
my_list.clear()  # []

常用方法:

  • 添加元素:
    • append(x) :在列表末尾添加一个元素
    • insert(i, x) : 在指定位置插入一个元素
    • extent(iterable):在列表末尾一次性添加多个元素 

当需要处理一个动态的数据集合,列表是一个很好的选择。

2) 元组(Tuple)

元组是一种有序的集合,与列表类似,但元组是不可变的,这意味着一旦创建,就不能修改元组中的元素。

# 创建元组
my_tuple = (1, 2, 3, 4, 5)
my_tuple = ('apple', 'banana', 'cherry')
my_tuple = (1, 'apple', 3.14, True)# 1. 访问元组,可以通过索引进行访问
my_tuple = (1, 2, 3, 4, 5)
print(my_tuple[2])  # 3# 2. 其他方法
my_tuple = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5)
my_tuple.count(5)  # 3 返回值为5的元素个数
my_tuple.index(4)  # 2 返回第一个值为x的元素的索引

元组相对于列表,其优势在于 不可变性。由于一经创建就不可变,一方面,可以存储固定的数据,例如存储不可修改的数据、或者作为字典的键。另一方面,由于其不可变,内存占用紧凑,更加节省内存空间。

3) 字典(Dictionary)

字典是一种无序的键值对集合。字典是可以变的,可以通过键来访问、添加、删除和修改值。

# 1. 创建字典
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
print(my_dict['name'])  # Alice# 2. 访问元素
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
print(my_dict['name'])  # Alice# 3. 添加和修改元素
my_dict['gender'] = 'Female'  # 添加新键值对
my_dict['age'] = 31  # 修改现有键值对# 4. 删除元素
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
# 删除指定键值对
del my_dict['city']  # {'name': 'Alice', 'age': 30}
# 删除指定键值对,并返回值。如果键不存在,返回默认值。
my_dict.pop('age')  # 30,{'name': 'Alice'}
# 删除并返回最后一对键值对(Python 3.7+)。
my_dict.popitem()  # ('name', 'Alice'),{}
# 清空字典。
my_dict.clear()  # {}# 5. 其他方法
# 返回字典的键视图
print(my_dict.keys())  # dict_keys(['name', 'age', 'city'])
# 返回字典的值视图。
print(my_dict.values())  # dict_values(['Alice', 30, 'New York'])
# 返回字典的键值对视图。
print(my_dict.items())  # dict_items([('name', 'Alice'), ('age', 30), ('city', 'New York')])
# 返回指定键的值,如果键不存在,返回默认值。
print(my_dict.get('name'))  # Alice
print(my_dict.get('gender', 'Unknown'))  # Unknown

4) 集合(Set)

集合是一种无序的不重复元素集合。集合是可变的,可以进行集合运算,如并集、交集、差集等。

# 1. 创建集合
my_set = {1, 2, 3, 4, 5}
my_set = set([1, 2, 3, 4, 5])# 2. 添加元素
my_set = {1, 2, 3}
# 添加一个元素
my_set.add(4)  # {1, 2, 3, 4}
# 添加多个元素
my_set.update([5, 6])  # {1, 2, 3, 4, 5, 6}# 3. 删除元素
my_set = {1, 2, 3, 4, 5}
# 删除元素x,如果元素不存在,抛出KeyError。
my_set.remove(3)  # {1, 2, 4, 5}
# 删除元素x,如果元素不存在,不抛出异常。
my_set.discard(6)  # {1, 2, 4, 5}
# 删除并返回一个任意元素,如果集合为空,抛出KeyError。
my_set.pop()  # 返回一个任意元素,例如1,{2, 4, 5}
# 清空集合。
my_set.clear()  # {}# 4. 集合运算
# union(*others):返回并集。
# intersection(*others):返回交集。
# difference(*others):返回差集。
# symmetric_difference(other):返回对称差集。
# issubset(other):判断是否是子集。

二、Python进行HTTP请求

1. 示例代码

Python进行HTTP请求,通常使用 requests库

下面是一个经典的,使用requests请求并返回数据的Python代码:

import requests
import jsonapi_key = 'xxx'# 设置params(如果有的话)
params = {'key1': 'value1','key2': 'value2'
}# 设置请求头
headers = {'Authorization': f'Bearer {api_key}','Content-Type' : 'application/json'
}# 设置payload数据
data = {"inputs": {"title" : "托尼老师,你睡了吗?我睡不着"},"query": "1","response_mode": "streaming","conversation_id": "","user": "xxx"
}# 发送请求
# data从json变成json字符串格式
response = requests.post('https://xxx/v1/chat-messages', headers=headers, params=params, data=json.dumps(data))# 获取response里面的返回参数
data_dict = json.loads(response.text) # 这里根据返回格式而定,设定需要解析的json串
text = data_dict["data"]["outputs"]["text"] # 根据key获取字典里面的值# 输出返回值
print(response.text)

最后返回的response对象是一个requests.Response对象,它包含了服务器返回的所有信息。虽然它是一个Python对象,但是并不是一个简单的数据结构,而是封装了多种属性和方法的复杂对象。可以通过访问它的属性和调用它的方法来获取和处理响应内容。

  • response.status_code:返回HTTP状态码,例如200表示成功,404表示未找到等。

  • response.headers:返回一个字典,包含响应头信息。

  • response.cookies:返回一个RequestsCookieJar对象,包含响应中的cookies。

  • response.url:返回请求的URL,包括查询字符串。

  • response.encoding:返回响应内容的编码。

  • response.text:返回响应内容的字符串形式,自动根据响应的编码进行解码。

  • response.content:返回响应内容的字节形式,适用于二进制数据,如图片、文件等。

  • response.json():将响应内容解析为JSON对象,前提是响应内容是JSON格式。

这里简单了解下就好,使用debug模式可以直接看到具体返回情况。

2. JSON数据处理

使用JSON函数需要导入json库:import json

函数描述
json.dumps将 Python 对象编码成 JSON 字符串
json.loads将已编码的 JSON 字符串解码为 Python 对象

1) json.dumps转为json串

json.dumps用于将Python对象编码成JSON字符串

语法:

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

实例:

以下实例将数组编码为JSON格式数据:

#!/usr/bin/python
import jsondata = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]data2 = json.dumps(data)
print(data2)

以上代码执行结果为:

[{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]

使用参数让JSON数据格式化输出:

#!/usr/bin/python
import jsondata = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]data2 = json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)

以上代码执行结果为:

{"a": "Runoob","b": 7
}

python原始类型向 json 类型的转化对照表

PythonJSON
dictobject
list, tuplearray
str, unicodestring
int, long, floatnumber
Truetrue
Falsefalse
Nonenull

2) json.loads转为字典

json.loads用于解码JSON数据。该函数返回Python字段的数据类型。

语法:

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

实例:

以下实例展示了Python 如何解码 JSON 对象:

#!/usr/bin/python
import jsonjsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';text = json.loads(jsonData)
print(text)

以上代码执行结果为:

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

json类型转换到python的类型对照表

JSONPython
objectdict
arraylist
stringunicode
number (int)int, long
number (real)float
trueTrue
falseFalse
nullNone

三、Python文件处理

1. 文件目录:os模块

我们都知道,os中文是操作系统的意思,顾名思义,Python 的 os 模块提供了各种操作系统的接口,这些接口主要是用来操作文件和目录。

Python中所有依赖于操作系统的内置模块,对于不同系统提供了相同接口,大大提升其可移植性。

查看路径,代码示例:

import os# 1. 查看路径
# 查看当前路径
print(os.getcwd())# 返回指定目录下包含的文件和目录名列表。
print(os.listdir('E:/'))# 返回路径 path 的绝对路径。
print(os.path.abspath('.'))# 将路径 path 拆分为目录和文件两部分,返回结果为元组类型。
print(os.path.split('E:/tmp.txt'))# 将一个或多个 path(文件或目录) 进行拼接。
print(os.path.join('E:/', 'tmp.txt'))# 2. 查看 path 时间相关参数(path可以是文件、可以是路径)
# 返回 path 在系统中的创建时间。
print(datetime.datetime.utcfromtimestamp(os.path.getctime('E:/tmp.txt')))# 返回 path 的最后修改时间。
print(datetime.datetime.utcfromtimestamp(os.path.getmtime('E:/tmp.txt')))# 返回 path 的最后访问时间。
print(datetime.datetime.utcfromtimestamp(os.path.getatime('E:/tmp.txt')))# 3. 判断 path 存在性、确认文件大小
# 判断是否存在
print(os.path.exists('E:/tmp.txt'))# 判断是否为目录
print(os.path.isdir('E:/'))# 判断是否为文件
print(os.path.isfile('E:/tmp.txt'))# 返回 path 的大小,以字节为单位,若 path 是目录则返回 0。
print(os.path.getsize('E:/tmp.txt'))
print(os.path.getsize('E:/work'))# 4. 创建、更改功能
# 创建一个目录
os.mkdir('E:/test')# 创建多级目录
os.makedirs('E:/test1/test2')# 将当前工作目录更改为 path。
print(os.getcwd())
os.chdir('/test')
print(os.getcwd())# 5. 调用shell脚本
print(os.system('ping www.baidu.com'))

2. 读取与写入:open函数

open 函数是Python内置的函数,对文本文件和二进制文件采用同样的操作步骤,和把大象放冰箱里一样分三步:打开-操作-关闭。

在Python中,使用 open() 函数来打开文件。这个函数需要两个参数:文件名和打开模式。文件名可以是相对路径或绝对路径,打开模式决定了文件的打开方式,如读取、写入等。

常见的打开模式mode:

  • 'r':读取模式,默认值。如果文件不存在,会抛出FileNotFoundError
  • 'w':覆盖写入模式。如果文件已经存在,会被覆盖。
  • 'a':追加写入模式。如果文件已存在,写入的数据会被追加到文件末尾。

读取文件代码:

# 1. 读取文件
# 逐行读取文件的内容
# for循环配合文件对象迭代器
with open('example.txt', 'r') as file_object:for line in file_object:print(line.strip())  # 使用strip()去除行尾的换行符# 读取全部内容
# 使用read方法可以一次性读取文件的全部内容,并将其作为一个字符串返回
with open('example.txt', 'r') as file_object:content = file_object.read()print(content)# 按行读取到列表
# 使用readlines方法可以读取文件的全部行,并将其作为一个列表返回
with open('example.txt', 'r') as file_object:lines = file_object.readlines()for line in lines:print(line.strip())

写入文件:

# 2. 写入文件
# 覆盖写入:'w'模式打开文件,然后使用write()方法写入内容。
with open('output.txt', 'w') as file_object:file_object.write('Hello, world!\n')file_object.write('This is a test.\n')# 追加写入:'a'模式打开文件,然后使用write()方法写入内容。
with open('output.txt', 'a') as file_object:file_object.write('This is appended text.\n')

使用with语句可以自动关闭文件,但在不使用with语句的情况下,需要手动的关闭文件,以释放系统资源。可以使用close方法关闭文件。

实际开发中,推荐实用 with 语句来处理文件,因为它可以自动管理文件的打开和关闭,使代码更加简洁和安全。

注意,上面只给出了 'w' 和 'r' 两种模式,还有一些其他打开模式可供选择,例如:

  • 'x':独占创建模式。如果文件已存在,会抛出FileExistsError;如果文件不存在,会创建一个新文件。

  • 't':文本模式,默认值。以文本形式处理文件,读取时会自动将内容解码为字符串,写入时会自动将字符串编码为字节。

  • 'b':二进制模式。以二进制形式处理文件,读取和写入的内容都是字节序列。

  • '+':更新模式。用于读写文件,可以和rwa等模式组合使用。

3. 处理Excel:openpyxl库

openpyxl是一个Python库,用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件。它提供了丰富的功能,可以创建、修改和查询Excel文件中的数据,支持复杂的Excel操作,如处理公式、图表和样式等。

一个Excel电子文档中可以包含多个表,每个表里面有行、列、单元格

用户正在查看的当前表(或者关闭Excel前最后查看到表)称为活动表

使用 openpyxl 库操作Excel表,主要包括读取某个单元格、按照范围读取、按照行或列读取等。代码如下:

import openpyxl# 加载工作簿
workbook = openpyxl.load_workbook('example.xlsx')
# 获取工作表
sheet = workbook['Sheet1']# 1. 读取单元格A1的值
cell_value = sheet['A1'].value
print(cell_value)  # 输出: 单元格A1的值# 2. 通过行和列索引读取数据
cell_value = sheet.cell(row=2, column=3).value
print(cell_value)  # 输出: 单元格C2的值# 3. 读取A1:C3区域的值
cells = sheet['A1:C3']
for row in cells:for cell in row:print(cell.value, end=" ")print()# 4. 按行获取值
for row in sheet.iter_rows(min_row=1, max_row=5, min_col=1, max_col=3):for cell in row:print(cell.value, end=" ")print()# 5. 按列获取值
for col in sheet.iter_cols(min_row=1, max_row=5, min_col=1, max_col=3):for cell in col:print(cell.value, end=" ")print()

持续加载 ing ~

http://www.hrbkazy.com/news/28618.html

相关文章:

  • 用区块链来做网站google中文搜索引擎
  • 微网站可以做商城吗深圳seo网络优化公司
  • 做网站需要注册商标是几类上海百度推广客服电话
  • 淘客网站自己做chrome谷歌浏览器
  • 为什么做的网站别的浏览器打不开怎么回事百度搜索推广官网
  • 余姚做网站公司企业网站建设方案策划
  • 论坛类网站备案吗怎样才能上百度
  • 北京网站排名公司国家新闻最新消息今天
  • 大连做网站价格网站建设seo优化培训
  • dede如何做手机网站seo在线诊断工具
  • dedecms网站主页空白seo教程免费分享
  • 电商模板网站免费网站模板网
  • 南京哪里有做公司网站的今天发生的重大新闻5条
  • 做线下活动的网站推广方案设计
  • 做村易通网站站长要收费吗?市场营销毕业论文
  • 川海丰尚麻辣烫加盟费多少网站关键词优化的步骤和过程
  • 国产做网站腾讯朋友圈广告投放价格
  • 做视频能赚钱的网站seo视频教程百度云
  • 网站建设合同编号培训平台
  • 高新区手机网站建设百度正版下载并安装
  • 运城网站建设公司有多少钱推广信息哪个平台好
  • 建网站需要什么手续长沙seo 优化选智投未来no1
  • ps怎么做响应式网站布局图营销推广活动策划方案
  • 互联网建网站百度推广计划
  • 深圳福田区住房和建设局官方网站站长工具四叶草
  • 日本网站空间饥饿营销的十大案例
  • 网站管理 上传模板南昌seo推广公司
  • 怎么得到wordpress文章加图片网站建设优化公司
  • 网站源码是用什么做的百度关键词搜索排行
  • 做网站的是什么基本seo