浅亡
码龄6年
关注
提问 私信
  • 博客:423,051
    社区:18
    423,069
    总访问量
  • 76
    原创
  • 1,989,629
    排名
  • 177
    粉丝
  • 0
    铁粉

个人简介:花开花败总归尘,缘来缘去终会散。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2018-09-16
博客简介:

jianbai_的博客

查看详细资料
个人成就
  • 获得595次点赞
  • 内容获得56次评论
  • 获得2,907次收藏
  • 代码片获得1,420次分享
创作历程
  • 37篇
    2020年
  • 40篇
    2019年
成就勋章
TA的专栏
  • Python
    10篇
  • 整理
    4篇
  • C语言
    17篇
  • 数据结构
    13篇
  • 计算机网络
    7篇
  • 编译原理
    5篇
  • Verilog
    1篇
  • 汇编
    4篇
  • C++
    5篇
  • STM32
    5篇
  • 操作系统
    8篇
  • C语言结合图形界面
    1篇
  • MATLAB
  • JAVA
    7篇
  • 网络编程
    1篇
  • 数据库
    1篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

python:导入第三方库greenlet,gevent方法

greenlet,geventgreenlet,gevent是python支持的第三方库,它们可以帮助我们完成协程的使用,其中greenlet是手动调换方式(switch方法),gevent是自动调换方式(遇到IO操作)。在导入第三库greenlet,gevent的时候我遇到了一些问题,现在将问题和解决办法总结如下。导入问题greenlet,gevent两个库遇到的问题是一样的,以greenlet为例。解决办法步骤一:下载.whl文件首先,我们需要点击下面的链接,下载该库文件对应版本的.
原创
发布博客 2020.12.01 ·
2447 阅读 ·
0 点赞 ·
1 评论 ·
5 收藏

python学习笔记:迭代器

python迭代器可迭代对象要了解迭代器,我们首先就要知道迭代是什么意思,简单来说迭代就是遍历,eg:字符串、列表都是可以遍历的,我们就称为可迭代的对象。那么在python中如何判断一个对象是可迭代的,python为了提供了一种简单的方法,如下:from collections.abc import Iterable #导入包f=isinstance(需要判断的对象名,Iterable)用该方式可以快速的盘算一个对象是不是可迭代的对象,如果返回True证明是可以迭代的,返回False证明是
原创
发布博客 2020.11.22 ·
434 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

python学习笔记:生成器

生成器(generator)列表是python中经常使用的一种数据类型,但是受到内存的限制,其容量是有限的。当列表中的元素很多很多的时候,可能会出现内存不够,列表无法建立的情况,而且即使我们可以开辟成功,我们使用的元素也可能是其中很小的一部分元素,这样在很大程度上就浪费了内存。为了解决这个问题,python引入了“生成器”(generator)这个概念,其实质就是“一边循环,一边计算”的机制,即:,即当用户需要使用某个对象时,python才根据事先设计好的规则开辟内存空间创建该对象供用户使用,而不是像列
原创
发布博客 2020.11.22 ·
474 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C语言学习笔记:动态数组

动态数组数组是C语言中的很重要的一种构造类型,最初我们学习的都是静态数组,但是,静态数组有着自己难以改变的缺点——数组长度固定。一般在静态数组定义后,系统就会为其分配对应长度的连续的专有内存空间,可是,我们都知道,不同的运行样例,所需要的数组长度是不一样的,为了所有样例都可以执行,一般我们会将数组长度设置为一个很大的值,比如:我一般都是借助宏定义直接声明1000,这个长度是可以满足我日常所需的。虽然这种方式,满足了一般运行的要求,但是它极大的浪费了内存。于是我们引出了动态数组的概念,顾名思义,“动态”
原创
发布博客 2020.11.16 ·
52635 阅读 ·
86 点赞 ·
8 评论 ·
397 收藏

python学习笔记:装饰器

python装饰器在python的学习中,我们经常会遇到装饰器这个词。从他的名字看,起的作用应该是“装饰”,那么它具体是什么呢?今天我们就来分析一下。基础知识如果我们要学习装饰器,那么一定要了解内部函数和闭包的概念,因为可以这么说装饰器基于闭包实现,闭包基于内部函数实现。也可以说装饰器是闭包的一个应用。1、内部函数内部函数大致格式#定义函数func()def func(): #函数func()变量声明(局部/全局) #函数func()中其他函数体,除内部函数以外 d
原创
发布博客 2020.11.15 ·
158 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Python学习笔记:拆包和装包

拆包和装包在python的学习中,我们经常会遇到两个可变变量:(1)*args(2) ** kwargs变量的名字不重要,重要的是 * 和 ** 两个符号,*代表的就是该变量是可变数据类型。注意:可变数据类型和不可变数据类型可变数据类型:是指当该数据对应变量的值发生变化的时候,对应内存地址并没有开辟出新的内存去接收新值,而是在原来的内存空间上进行修改。eg:列表,集合,字典都是可变数据类型不可变数据类型:对象所指向的内存中的值是不可以改变,也就是如果给不可变数据类型做修改,则内存地
原创
发布博客 2020.11.15 ·
646 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

C语言学习笔记:C指针

指针C语言是我接触的第一门编程语言,当时学习C语言的时候,遇到的第一个难点就是指针。我觉得大多数人在学习C指针的时候都或多或少有过困惑,最近正好在复习C语言,对指针的理解由加深了,现在来总结一下。地址和指针变量的内容和地址在提到了指针的时候,我们不可避免的会涉及到地址和指针的关系。我们在学习计算机基础的时候就知道,计算机中的所有数据都是存储在内存中的存储单元的,存储单元说白了就是内存中的一个字节。注意:不同类型的数据所占用的字节数是不一样的举例:那么我们刚才提到的地址和存储单元有什么关系
原创
发布博客 2020.11.15 ·
244 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

python学习笔记:文件操作

python文本文件操作文件操作是编程中常见的操作,这次,主要总结一下python中的文本文件操作。一般来讲,文件的操作流程如下:(1)打开文件(2)对文件的内容进行读取,写入,删除,修改等(3)关闭文件打开和关闭文件打开文件和关闭文件是文件操作的第一步和最后一步。1、打开文件打开文件的时候我们需要使用函数open(),其调用的一般形式如下:文件对象=open(文件名,使用文件的方式)注意:常用的文件使用方式如下:2、关闭文件在对文件的修改完毕后,最后我们要释放文件资源,也就
原创
发布博客 2020.11.10 ·
497 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

python学习笔记:类的继承

python中类的继承在之前讨论面向过程和面向对象的区别时,我们提到了一个等式:面向对象 = 对象 + 类 + 继承 + 消息从中我们可以看到继承是面向对象的语言中一个重要的组成部分,继承是一种连接类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表达共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生或子类,而原始类称为新类的基类或父类。派生类可以从基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。那么pyt
原创
发布博客 2020.11.10 ·
618 阅读 ·
1 点赞 ·
1 评论 ·
8 收藏

python学习笔记:类的方法总结

python中类的方法总结在python中,类的方法有如下三种:(1)实例方法(即:对象方法)(2)类方法(3)静态方法下面,将对这三种方法进行总结。1、实例方法(对象方法)通常情况下,类中的方法默认是实例方法,在定义的时候不需要使用使用特殊的关键字进行标识。基本知识对于实例方法,我们需要了解以下的基本知识:(1)实例方法至少有一个参数,默认该参数的名字为“self”(也可以是其他的),若有其他参数,可以跟在该参数后面(2)实例方法有两种调用方式:第一种:通过实例对象调用,该方法不需
原创
发布博客 2020.11.09 ·
17821 阅读 ·
26 点赞 ·
1 评论 ·
83 收藏

python学习笔记:去掉python字符串中空格的方法总结

去掉python字符串中空格的方法总结在python的字符串处理过程中,有一个很常见的操作的是去掉字符串中的空格,python提供了以下四个函数来实现该操作:(1) lstrip()函数(2) rstrip()函数(3) strip()函数(4) replace()函数但是它们有各自的功能,下面进行总结。lstrip()函数功能:只能去掉字符串前面的空格用法:s.lstrip()即:意味着它不能去掉字符串其他位置的空格:中间,后面rstrip()函数功能:只能去掉字符
原创
发布博客 2020.11.05 ·
949 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

C语言:归并排序

归并排序归并是将两个或多个存序记录序列合并成一个有序序列。一般来说,一次对几个有序记录进行归并,就称为几路归并排序。以二路归并排序为例,其基本方法如下:(1) 将 n 个记录看成是 n 个长度为 1 的有序子表。(2) 将两两相邻时有序序列进行归并。(3) 重复执行步骤 (2) 直到归并成一个长度为 n 的有序表如下所示:C语言代码//二路归并#include <stdio.h>int MergeSort(int A[],int B[],int low,int high)
原创
发布博客 2020.07.20 ·
950 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

C语言:堆排序

堆排序基本概念:(1)n个关键字序列L[1~n]称为堆,当且仅当该序列满足:①L(i)<=L(2i)&&L(i)<=L(2i+1),则称该堆为小根堆②L(i)>=L(2i)&&L(i)>=L(2i+1),则称该堆为大根堆在排序过程中将序列视为一棵完全二叉树的顺序存储结构。(2)堆的初始化对所有具有双亲结点含义编号从大到小(n/2~1)做如下调整:①若孩子结点都小于双亲结点,则不做调整②若存在孩子结点大于双亲结点,则将最大的孩子结点
原创
发布博客 2020.07.20 ·
811 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

C语言:简单选择排序

简单选择排序简单选择排序是选择排序的一种,其基本思想是将每一趟在后面的n-i+1个待排序的序列中选取关键字最小的元素,作为有序子序列中的第i个元素,直到n-1趟完成,待排序序列中只有一个元素,即得到最终的排好序的序列。(一趟排序会将一个元素放在最终的位置上)C语言代码#include<stdio.h>void SelectSort(int A[],int n); int main() { int A[1024],n; printf("请输入要输入的元素个数:"); scan
原创
发布博客 2020.07.20 ·
7399 阅读 ·
7 点赞 ·
1 评论 ·
53 收藏

C语言 快速排序

快速排序快速排序通过分而治之的策略,交换两个不相邻的元素,一次可以消去多个逆序,效率极高。基本思想在待排序的序列L[1~n]中,任意取一个元素pivot作为“枢轴”,凡是关键字小于枢轴的记录,均移动到该记录之前,关键字大于枢轴的记录,均移动到该记录之后,即对无序的记录进行“以此划分”,之后分别对分割所得的两个子序列“递归”调用进行快排。通过一趟排序将待排序序列划分为具有如下特点的两部分:一次划分会将一个元素pivot防止在它最终的位置上。算法实现的思路初始化标记low为划分部分第一个元
原创
发布博客 2020.07.20 ·
615 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

C语言:冒泡排序

冒泡排序冒泡排序是交换排序的一种,其基本思想是:假设待排序的序列长度为n,从后往前(从前往后)两两比较相邻元素的值,若为逆序(当i<j时,A[j]>A[i],称逆序),则交换他们直到序列比较结束。一次冒泡会将一个元素放在它最终的位置上,以后比较时不用比较该元素。C语言代码//使用冒泡排序进行升序排列#include <stdio.h>void BubbleSort(int A[], int n);int main() { int A[1024],n; prin
原创
发布博客 2020.07.20 ·
318 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

C语言:希尔排序

希尔排序希尔排序是插入排序的一种,也称作缩小增量排序,其基本思想是:先将待排序的序列分割成d个形如L[i,i+d,i+2d,…,i+kd]的特殊子表,分别进行直接插入排序,当整个表中的元素呈"基本有序时",再对全体记录进行一次直接插入排序。最终得到排好序的序列。d的选取:手动演示希尔排序的过程:取待排序序列为: 46 55 13 42 94 17 5 70实验代码//使用希尔排序进行升序排列#include <stdio.h>int ShellInsert(in
原创
发布博客 2020.07.20 ·
1139 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

C语言: 折半插入排序

折半插入排序折半插入排序是插入排序的一种情况,其效率比直接插入排序,其实现过程和折半查找类似。C语言代码//使用折半插入排序进行升序排列#include<stdio.h>void BinsertSort(int A[],int n);int main() { int A[1024],n; printf("请输入要输入的元素个数:"); scanf("%d",&n); printf("
请输入要排序的序列:
"); for (int i=1; i<=
原创
发布博客 2020.07.20 ·
970 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

C语言:直接插入排序

直接插入排序直接插入排序是插入排序的一种,插入排序是每次将一个待排序的序列插入到一个前面已经排好序的子序列当中。直接插入排序的算法思想如下:(1)查找出L[i]在L[1~i-1]中的插入位置k;(2)将L[k~i-1]中所有的元素全部向后移一个位置;(3)将L[i]复制到L[k]中。手动显示一下这个过程:假设有一个待排序序列 : 3 6 7 2 5 1 4趟数哨兵序列163 6 7 2 5 1 4273 6 7 2 5 1 432
原创
发布博客 2020.07.20 ·
11307 阅读 ·
13 点赞 ·
6 评论 ·
47 收藏

栈的应用:中缀表达式转后缀表达式

中缀表达式转后缀表达式在学习数据结构的时候,我们知道,栈有很多的应用,其中比较常见的一个就是中缀表达式转后缀表达式问题。中缀表达式转后缀表达式的算法思想:(1)数字:直接加入后缀表达式(2)运算符:A.若为’(’ ,入栈 ;B.若为’)’,则依次把栈中的运算符加入后缀表达式,直到出现 ‘(’,并从栈中删除’(’;C.若为’+’,’-’,’*’,’/’ ,则分为以下情况讨论:a.栈空:入栈;b.栈顶元素为’(’:入栈;c.高于栈顶元素优先级:入栈;d.若不属于以上情况,则依次弹出栈顶运算
原创
发布博客 2020.07.14 ·
959 阅读 ·
2 点赞 ·
2 评论 ·
5 收藏
加载更多