![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程基础
文章平均质量分 82
落痕的寒假
这个作者很懒,什么都没留下…
展开
-
[编程基础] Python内置模块collections使用笔记
collections是Python标准库中的一个内置模块,它提供了一些额外的数据结构类型,用于增强Python基础类型如列表(list)、元组(tuple)和字典(dict)等。本文主要介绍这些数据类的基础使用方法,以更好地利用Python的collections模块来处理不同类型的数据。。原创 2023-09-05 17:34:50 · 490 阅读 · 0 评论 -
[python] Python类型提示指北
Python也支持对自定义类进行类型提示。在上面的代码中,我们定义了一个 Person 类,它有两个属性:name 和 age。在初始函数中,我们使用类型提示指定了这两个属性的类型。接下来,我们定义了一个 say_hello 函数,这个函数的参数是一个 Person 类型的对象,并且返回值是一个字符串。原创 2023-05-10 19:42:33 · 2714 阅读 · 1 评论 -
[python] Python枚举模块enum总结
基础示例。原创 2023-04-17 12:00:33 · 4679 阅读 · 0 评论 -
[数据与分析可视化] D3入门教程3-d3中的数据操作
d3.js入门教程3-d3.js中的数据操作d3.js是一个用于绘图的JavaScript库。 它可以可视化展示任何类型的数据。 这篇文章介绍d3.js最常见的数据操作任务,包括排序、过滤、分组、嵌套等。数学操作d3.max和d3.min就是获取数据每一列的最大值和最小值的函数,示例代码如下 <!-- 加载d3 --> <script src="https://d3js.org/d3.v4.js"></script> <script&原创 2021-12-05 17:57:54 · 2203 阅读 · 0 评论 -
[数据与分析可视化] D3入门教程2-在d3中构建形状
d3.js入门教程2-在 d3.js中构建形状文章目录d3.js入门教程2-在 d3.js中构建形状形状的添加圆形的添加矩形的添加线段的添加文本的添加折线的添加区域的添加圆弧的添加参考d3.js是一个用于绘图的JavaScript 库。 它可以可视化展示任何类型的数据。 d3.js允许绘制形状,然后将各种形状构建一个图形。本文档描述了一些函数,可以更有效地从数据中绘制svg。形状的添加圆形的添加在svg中绘制圆形。需要三个参数:分别代表圆心x位置的cx、圆心y位置的cy和半径的r。基础调用函数如下原创 2021-11-28 15:28:15 · 1129 阅读 · 0 评论 -
[数据与分析可视化] D3入门教程1-d3基础知识
d3.js入门教程1-d3基础知识文章目录d3.js入门教程1-d3基础知识1 HTML介绍1.1 什么是HTML?1.2 自定义文档样式CSS1.3 构建svg图形2 d3绘图入门2.1 使用Javascript和d3.js修改元素2.2 Console.log()2.3 坐标系2.4 比例尺2.5 添加轴2.6 边距和偏移2.7 数据绑定3 参考d3.js是一个用于绘图的JavaScript 库。 它可以可视化展示任何类型的数据。 本文档展示了多个交互式示例,说明了d3.js的关键概念,从而生成了第原创 2021-11-21 12:56:20 · 2831 阅读 · 0 评论 -
[编程基础] 常用html标签使用介绍
常用html标签使用介绍本文主要记录常用的html标签使用说明,用起来的时候偶尔查查。常用html标签列表标签英文全拼作用特点<html></html>html网页的根标签所有的标签都要写在这一对根标签里面<head></head>head网页的头标签包括完档的属性和信息<body></body>body网页的主题包含文档的所有内容<div></div&原创 2021-10-24 08:35:32 · 1129 阅读 · 0 评论 -
[编程基础] Python字符串替换笔记
Python字符串替换笔记Python字符串替换笔记主要展示了如何在Python中替换字符串。Python中有以下几种替换字符串的方法,本文主要介绍前三种。replace方法(常用)translate方法re.sub方法字符串切片(根据Python字符串切片方法替换字符)1 replace方法Python replace方法把字符串中的old(旧字符串) 替换成new(新字符串),如果指定第三个参数max,则设置替换次数不超过 max 次。str.replace(old, new[,原创 2021-08-18 12:36:35 · 2498 阅读 · 0 评论 -
[python] Python map函数总结
Python map函数总结本文主要介绍如何使用Python(Python3版本)的内置map()函数。简单来说map()函数会将指定的函数依次作用于某个序列的每个元素,并返回一个迭代器对象。map语法如下,其中function表示我们指定的函数,iterable表示要作用的序列,这个序列可以是一个也可以是多个。map(function, iterable, ...)下面实例具体介绍map()的使用方法。关于map函数的更多使用介绍见本文参考部分。文章目录Python map函数总结1 使用1.1原创 2021-07-22 12:05:19 · 13173 阅读 · 2 评论 -
[R语言] R语言快速入门教程
本文主要是为了从零开始学习和理解R语言,简要介绍了该语言的最重要部分,以快速入门。主要参考文章:R-TutorialR语言程序的编写需要安装R或RStudio,通常是在RStudio中键入代码。但是RStudio个人感觉并不好用,因此本人编写的R语言程序都是在Jupyter Notebook平台使用。具体可以见在 Jupyter Notebook 中使用R语言。R语言和Python,matlab一样都是解释型语言,语法差别不大,容易入门。其他进阶内容见R语言个人笔记文章目录1 入门基础1.1 基础原创 2021-02-05 19:05:12 · 8616 阅读 · 0 评论 -
[编程基础] Python命令行解析库argparse学习笔记
Python argparse教程展示了如何使用argparse模块解析Python中的命令行参数。文章目录1 使用说明1.1 Python argparse可选参数1.2 Python argparse必需参数1.3 Python argparse位置参数1.4 Python argparse dest1.5 Python argparse type1.6 Python argparse default1.7 Python argparse metavar1.8 Python argparse appe原创 2020-10-31 09:13:35 · 728 阅读 · 0 评论 -
[编程基础] Python中*args和**kwargs参数的使用
本文主要介绍Python中*args和**kwargs参数的使用文章目录1 使用2 拓展3 参考1 使用在Python中,定义函数时可以使用两个特殊符号,以允许它们接受可变数量的参数。这两个特殊符号为*和**。通常*和args一起使用,**和kwargs一起使用。事实上args和kwargs可以用任何名称替代,之所以用args和kwargs仅仅是为了遵从通俗约定。args为arguments的缩写,表示多个参数。kwargs为 keyword arguments 的缩写,表示多个关键字参数。Pyth原创 2020-10-14 21:04:20 · 5673 阅读 · 1 评论 -
[编程基础] Python对象的浅拷贝与深拷贝笔记
Python中的赋值语句不创建对象的副本,它们只将名称绑定到对象。对于不可变的对象,这通常没有什么区别。但是对于处理可变对象或可变对象的集合,您可能需要寻找一种方法来创建这些对象的“真实副本”或“克隆”。从本质上讲,您有时会希望拷贝可以在不自动修改原始副本的情况下进行修改。在本文中,我将向您简要介绍如何在Python3中复制或“克隆”对象,以及一些相关的注意事项。此外,在复制对象方面,Python 2和3之间没有什么区别。让我们先看看如何复制Python的内置集合。Python内置的可变集合,如列表、字典原创 2020-08-02 11:06:25 · 576 阅读 · 0 评论 -
[编程基础] Python中的绝对导入与相对导入
如果您从事的Python项目有多个文件,那么您以前可能不得不使用import语句。即使对于拥有多个项目的Python重度使用者(比如我),import也可能会造成混淆!您可能正在阅读本文,因为您想对Python中的import(尤其是绝对导入和相对导入)有更深入的了解。在本教程中,您将学习两者之间的区别以及它们的优缺点。让我们潜入吧!文章目录1 Imports快速介绍2 import语句的语法2.1 基本使用2.2 导入声明的样式3 绝对import和相对import3.1 绝对import3.2 相对原创 2020-08-01 22:08:54 · 644 阅读 · 0 评论 -
[编程基础] Python模块和包使用笔记
本文探讨Python模块和Python包,这两种机制有助于模块化编程。模块化编程是指将大型笨拙的编程任务分解为单独的,较小的,更易于管理的子任务或模块的过程。然后可以像构建模块一样将各个模块拼凑在一起以创建更大的应用程序。在大型应用程序中模块化代码有几个优点:简单性:模块通常只关注问题的一个相对较小的部分,而不是关注手头的整个问题。如果你是在一个模块上工作,你将有一个更小的问题域来解决。这使得开发更容易,也不容易出错。可维护性:模块通常经过设计,以便它们在不同问题域之间建立逻辑边界。如果以最小化相原创 2020-08-01 21:45:14 · 628 阅读 · 0 评论 -
[编程基础] Python列表解析总结
在本教程中,我们将学习使用Python列表解析(list comprehensions)相关知识文章目录1 使用介绍1.1 Python列表解析转换列表1.2 从摄氏度计算华氏温度1.3 Python列表解析过滤列表1.4 Python列表逻辑委托函数1.5 前置if条件判断1.6 Python列表解析处理多if条件1.7 Python列表解析处理多个for循环1.8 Python嵌套列表解析1.9 埃拉托色尼筛选法2 参考1 使用介绍列表解析是一种基于现有列表创建列表的句法结构。列表解析提供了创建列原创 2020-06-26 14:29:00 · 725 阅读 · 0 评论 -
[编程基础] Python装饰器入门总结
Python装饰器教程展示了如何在Python中使用装饰器基本功能。文章目录1 使用教程1.1 Python装饰器简单示例1.2 带@符号的Python装饰器1.3 用参数修饰函数1.4 Python装饰器修改数据1.5 Python多层装饰器1.6 Python装饰器计时示例2 参考1 使用教程Python函数是一等公民。这意味着函数与Python中的其他对象具有同等的状态。可以将函数分配给变量,存储在集合中,动态创建和删除或作为参数传递。嵌套函数也称为内部函数,指的是在另一个函数中定义的函数。P原创 2020-06-25 17:12:53 · 442 阅读 · 0 评论 -
[编程基础] Python lambda函数总结
Python lambda函数教程展示了如何在Python中创建匿名函数。Python中的匿名函数是使用lambda关键字创建的。文章目录1 介绍1.1 简单使用1.2 Python lambda与map1.3 Python lambda与filter1.4 Python lambda与sort2 参考1 介绍Python lambda函数也称为匿名函数,是没有名称的内联函数。它们是用lambda关键字创建的。这是内置Python的函数范型的一部分。Python lambda函数仅限于一个表达式。它原创 2020-06-25 09:56:15 · 7317 阅读 · 7 评论 -
[编程基础] Python随机数生成模块总结
Python随机数生成模块教程演示如何在Python中生成伪随机数。文章目录1 介绍1.1 随机数字生成器1.2 Python random 模块1.3随机种子2 使用2.1 Python random模块同一随机种子使用2.2 Python random.randint2.3 Python random.randrange2.4 Python random.uniform2.5 Python random.choice2.6 Python random.shuffle2.7 Python random.原创 2020-06-24 21:05:32 · 1461 阅读 · 0 评论 -
[编程基础] Python日志记录库logging总结
Python日志记录教程展示了如何使用日志记录模块在Python中进行日志记录。文章目录1 介绍1.1 背景1.2 Python日志记录模块1.3 根记录器2 Python logging模块使用教程2.1 Python logging模块简单使用2.2 Python有效日志记录级别2.3 Python有效日志记录级别2.4 Python记录处理程序2.5 Python记录格式化程序2.6 Python日志基本配置2.7 Python日志记录文件配置2.8 Python日志记录变量2.9 Python日志原创 2020-06-23 23:02:04 · 701 阅读 · 0 评论 -
[编程基础] Python配置文件读取库ConfigParser总结
Python ConfigParser教程显示了如何使用ConfigParser在Python中使用配置文件。文章目录1 介绍1.1 Python ConfigParser读取文件1.2 Python ConfigParser中的节1.3 Python ConfigParser从字符串中读取数据1.4 Python ConfigParser从字典中读取数据1.5 Python ConfigParser写入数据1.6 Python ConfigParserj解释数据2 参考1 介绍ConfigParse原创 2020-06-21 16:34:12 · 777 阅读 · 0 评论 -
[编程基础] Python数据生成库Faker总结
Python Faker教程展示了如何使用Faker软件包在Python中生成伪数据。我们使用joke2k/faker包。文章目录1 介绍1.1 简单的使用1.2 Faking names1.3 Faking jobs1.4 Faking currencies1.5 Faking words1.6 Faking profiles1.7 Faking numbers1.8 Faking hashes and uuids1.9 Faking internet related data1.10 Faking d原创 2020-06-21 12:03:09 · 1227 阅读 · 0 评论 -
[编程基础] Python谷歌翻译库googletrans总结
1 使用说明本文介绍python谷歌翻译库接口googletrans的使用。具体见官方文档:https://py-googletrans.readthedocs.io/en/latest/#googletrans.Translator.translate文章目录1 使用说明1.1 安装1.2 Python googletrans检测语言1.3 python googletrans简单翻译1.4 源语言和目标语言指定1.5 Python googletrans翻译列表2 参考1.1 安装安装谷歌py原创 2020-06-20 20:18:36 · 4947 阅读 · 11 评论 -
[编程基础] Python格式化字符串常量f-string总结
Python格式化字符串常量f-string总结本文主要总结在Python中如何使用格式化字符串常量f-string(Formatted string literals)。在 Python 程序中,大部分时间都是使用 %s 或 format 来格式化字符串,在 Python 3.6 中新的选择 f-string可以用于格式化字符串。相比于其他字符串格式方式,f-string更快,更易读,更简明且不易出错。f-string通过f或 F 修饰字符串,如f’xxx’ 或 F’xxx’),以大括号 {}表示被替换原创 2020-06-17 20:46:52 · 1845 阅读 · 0 评论 -
[编程基础] C++多线程入门10-packaged_task示例
原始C++标准仅支持单线程编程。新的C++标准(称为C++11或C++0x)于2011年发布。在C++11中,引入了新的线程库。因此运行本文程序需要C++至少符合C++11标准。文章目录10 packaged_task<>示例10.1 结合使用packaged_task <>和函数来创建异步任务10.2 参考10 packaged_task<>示例在此示例中,我们将讨论c++11中std::packaged_task功能及其用法。std::packaged_task原创 2020-05-29 17:31:09 · 489 阅读 · 0 评论 -
[编程基础] C++多线程入门9-async教程和示例
原始C++标准仅支持单线程编程。新的C++标准(称为C++11或C++0x)于2011年发布。在C++11中,引入了新的线程库。因此运行本文程序需要C++至少符合C++11标准。文章目录9 async教程和示例9.1 什么是std::async()9.2 需要std::async()9.3 使用函数指针作为回调调用std::async9.4 参考9 async教程和示例在本文中,我们将讨论如何在C++11中使用std::async异步执行任务。std::async在c++11中引入。9.1 什么是s原创 2020-05-29 17:16:21 · 390 阅读 · 0 评论 -
[编程基础] C++多线程入门8-从线程返回值
原始C++标准仅支持单线程编程。新的C++标准(称为C++11或C++0x)于2011年发布。在C++11中,引入了新的线程库。因此运行本文程序需要C++至少符合C++11标准。8 从线程返回值一个std::future对象可以与asych,std::packaged_task和std::promise一起使用。本文将主要关注将std::future与std::promise对象一起使用。很多时候,我们遇到希望线程返回结果的情况。现在的问题是如何做到这一点?让我们举个例子假设在我们的应用程序中,我们创原创 2020-05-29 17:09:34 · 768 阅读 · 0 评论 -
[编程基础] C++多线程入门7-条件变量介绍
原始C++标准仅支持单线程编程。新的C++标准(称为C++11或C++0x)于2011年发布。在C++11中,引入了新的线程库。因此运行本文程序需要C++至少符合C++11标准。文章目录7 条件变量介绍7.1 条件变量7.2 std::condition_variable的主要成员函数7.3 解决问题的方法7.4 参考7 条件变量介绍在本文中,我们将通过示例讨论C ++ 11多线程中条件变量的用法。7.1 条件变量条件变量是一种事件,用于在两个或多个线程之间发出信号。一个或多个线程可以等待它发出信原创 2020-05-29 17:06:29 · 361 阅读 · 0 评论 -
[编程基础] C++多线程入门6-事件处理的需求
原始C++标准仅支持单线程编程。新的C++标准(称为C++11或C++0x)于2011年发布。在C++11中,引入了新的线程库。因此运行本文程序需要C++至少符合C++11标准。文章目录6 事件处理的需求6.1 使用说明6.2 参考6 事件处理的需求6.1 使用说明在本文中,我们将讨论多线程中事件处理的需求。有时,线程需要等待事件发生,例如条件变为真或任务由另一个线程完成。假设我们正在构建一个基于网络的应用程序。该应用程序执行以下任务,与服务器进行一些连接从XML文件加载数据对从XML加载的原创 2020-05-29 17:00:58 · 432 阅读 · 0 评论 -
[编程基础] C++多线程入门5-使用互斥锁解决资源竞争
原始C++标准仅支持单线程编程。新的C++标准(称为C++11或C++0x)于2011年发布。在C++11中,引入了新的线程库。因此运行本文程序需要C++至少符合C++11标准。5 使用互斥锁解决资源竞争在本文中,我们将讨论如何使用互斥锁来保护多线程环境中的共享数据并避免资源竞争。为了解决多线程环境中的资源竞争,我们需要互斥锁,即每个线程都需要在修改或读取共享数据之前锁定互斥锁,并且在修改数据之后,每个线程都应解锁互斥锁。5.1 std::mutex在C++11线程库中,互斥锁位于mutex头文件中原创 2020-05-29 16:56:08 · 562 阅读 · 0 评论 -
[编程基础] C++多线程入门4-数据共享和资源竞争
原始C++标准仅支持单线程编程。新的C++标准(称为C++11或C++0x)于2011年发布。在C++11中,引入了新的线程库。因此运行本文程序需要C++至少符合C++ 11标准。文章目录4 数据共享和资源竞争4.1 资源竞争4.2 如何解决比赛条件?4.3 参考4 数据共享和资源竞争在多线程环境中,线程之间的数据共享非常容易。但是,这种易于共享的数据可能会导致应用程序出现问题。这样的问题之一就是资源竞争。4.1 资源竞争竞争条件是多线程应用程序中出现的一种错误。当两个或多个线程并行执行一组操作时原创 2020-05-29 16:51:33 · 562 阅读 · 0 评论 -
[编程基础] C++多线程入门2-连接和分离线程
原始C++标准仅支持单线程编程。新的C++标准(称为C++11或C++0x)于2011年发布。在C++11中,引入了新的线程库。因此运行本文程序需要C++至少符合C++11标准。文章目录2 连接和分离线程2.1 用std::thread::join()连接线程2.2 使用std::thread::detach()分离线程2.3 参考2 连接和分离线程在本章中,我们将讨论std::thread的连接和分离。2.1 用std::thread::join()连接线程一旦启动一个线程,则另一个线程可以等待原创 2020-05-29 16:42:33 · 929 阅读 · 0 评论 -
[编程基础] C++多线程入门3-小心地将参数传递给线程
原始C++标准仅支持单线程编程。新的C++标准(称为c++11或c++0x)于2011年发布。在c++11中,引入了新的线程库。因此运行本文程序需要C++至少符合c++11标准。文章目录3 小心地将参数传递给线程3.1 在c++11中将简单参数传递给std::thread3.2 如何不将参数传递给c++11中的线程3.3 如何在c++11中传递对std::thread的引用3.4 将指向类成员函数的指针分配为线程函数3.5 参考3 小心地将参数传递给线程要将参数传递给线程的关联可调用对象或函数,只需将原创 2020-05-29 16:46:39 · 345 阅读 · 0 评论 -
[编程基础] C++多线程入门1-创建线程的三种不同方式
原始C++标准仅支持单线程编程。新的C++标准(称为C++11或C++0x)于2011年发布。在C++11中,引入了新的线程库。因此运行本文程序需要C++至少符合C++11标准。1 创建线程的三种不同方式在本章中,我们将讨论如何使用std::thread在C++11中创建线程。在每个C++应用程序中,都有一个默认的主线程,即main()函数。在C++11中,我们可以通过创建std::thread类的对象来创建其他线程。每个std::thread对象都可以与一个线程关联。因此我们需要引入头文件为:#i原创 2020-05-29 16:30:50 · 2029 阅读 · 0 评论 -
[编程基础] C#自定义类调用窗体控件
如果自定义类需要调用窗体控件,首先需要将窗体控件的可见级别(Modifiers)设为public。如下图所示:然后在Form1类下定义静态变量form1,并初始化。class Form1: Form{ //在Form1类下定义静态变量 public static Form1 form1; public Form1() { Ini...原创 2017-11-02 22:54:00 · 3930 阅读 · 2 评论 -
[编程基础] C和C++内置宏说明
文章目录1 内置的宏定义2 运行平台宏3 编译器宏4 调试类型宏5 代码C和C++内置宏在代码调试、跨系统平台代码中会经常使用,本文记录说明一下。内置宏不需要调用头文件,可直接使用。在使用预定义的宏之间需要了解常用的条件编译指令,具体条件编译指令可见:if、#else、#endif、#elif、#ifdef、#ifndef的区别和使用1 内置的宏定义这些宏在代码中可直接调用。宏宏说明__DATE__程序最后编译日期宏__TIME__程序最后编译时间宏__LINE原创 2020-05-09 21:09:04 · 1370 阅读 · 0 评论