- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 【2022-01-08】异常处理
代码段try: f = open('C:\\Users\87987\Desktop\JJLIN.txt','a') print(f.read())except OSError as reason: print('文件出错啦,原因是:'+str(reason))finally: f.close()
2022-01-08 21:17:14
283
原创 【2022-01-06】字典与集合
1.字典# 1.字典:映射类型,大括号表示dict1=dict(新地球='浪漫血液',和自己对话='不为谁而作的歌')print(dict1.get('新地球'))print(dict1.keys())print(dict1.values())dict2 = dict1.copy()print(dict2)dict2.pop('和自己对话')print(dict2)print(dict1.popitem())...
2022-01-06 20:20:45
296
原创 【2022-01-05】递归用法
1. 递归求阶乘代码段# 代码段def jiecheng(n): if n == 1: return 1 else: return n*jiecheng(n-1)print(jiecheng(5))2.斐波那契数列代码段def func(n): if n < 1: print('error') return -1 if n == 1 or n == 2: ret
2022-01-05 15:23:15
187
原创 【2022-01-04】lambda+filter+map
# 1.lambda表达式g=lambda x,y:2*x+y+1print(g(5,8))# 2.filter过滤器,非ture内容过滤掉def odd(x): return x%2temp = range(10)show = filter(odd,temp)print(list(show))# 3. list + filter + lambdaprint(list(filter(lambda x:x%2,range(10))))# 4. map映射print(list(ma
2022-01-04 16:23:48
196
原创 【2022-01-03】数组、列表、元组的与字符串那点事
member = ['lin']print(member,' ',len(member))# 末尾插入(仅一个)member.append('love')print(member,' ',len(member))# 末尾插入(多个插入)member.extend(['Lynne','forever'])print(member,' ',len(member))# 按位置插入member.insert(0,'JJ')print(member,' ',len(member))
2022-01-03 16:36:21
438
原创 【2021-12-31】分支和循环
# 1.三元操作符a = 3b = 4small = a if a>b else bprint('small = %d' %(small))# 2. assert断言,关键词后面为假时。程序崩溃抛出异常# assert a > b# 3. 分数评级if elsescore = int( input('请输入分数:'))if 90 <= score <= 100: print('A')elif 80 <= score < 90 : pri
2021-12-31 19:00:10
257
原创 IP地址那点事(inet_ntoa和inet_addr)
(1) 小记IP那些事一、点十分进制ip - 用4个[0-255]的十进制数字,表示一个ip 4个字节,一个字节是8位(uint_32) - ip地址实质上,为无符号的32位整数 - 多大的水果—用合适大小的筐来装 - struct in_addr { unsigned int s_addr; };二、 网络字节序,采用大端顺序三、 htonl()和ntohl() - "h"表示主机host,"n"表示网络network - //返回按网络字节顺序的值 - un
2021-02-27 16:01:12
961
原创 IP地址—u32数值转u8字符串(2)
(1) snprintf 格式化拼接字符串#include <stdio.h>#include <string.h>#include <arpa/inet.h>#include <netinet/in.h>typedef uint32_t u32;typedef uint8_t u8;u8* netaddr_ntoa (u32 ip){ static u8 addr[16]; u8* p = (u8*)&ip; sprintf
2021-02-27 15:44:44
344
原创 IP地址—u32数值转u8字符串(1)
(1)sprintf 格式化字符串 + strcat(不推荐)#include <stdio.h>#include <string.h>#include <arpa/inet.h>#include <netinet/in.h>typedef uint32_t u32;typedef uint8_t u8;void U32ToU8Array(u8 *buf, u32 u32Value){ buf[0] = ((u32Value >
2021-02-27 15:22:57
1774
原创 sprintf与snprintf格式化字符串复制函数
一、函数声明(1)sprintf介绍int sprintf(char *str, const char *format, ...);1. 根据参数[format字符串]来转换并格式化数据2. 将格式化结果复制到str指向的字符串数组3. 直到出现字符串结束符['\0']为止(2)snprintf介绍1. 根据参数[format字符串]来转换并格式化数据2. 将格式化结果复制到str指向的字符串数组3. 直到出现字符串结束符['\0']或达到size指定大小为止(截断)int snpri
2021-02-27 15:07:59
574
原创 字符串翻转|字符串中单词翻转(C/C++)
一、字符串翻转(1)简单:直接上代码(2)重点:循环终止条件+Swap()实现// 代码如下#include <iostream>#include <cstring>void Reverse(char str[],int start,int end){ for( ;start < end; start++,end--){ char tmp = str[start]; str[start] = str[end];
2020-08-10 14:23:33
1224
原创 字符串循环左|右移实现(C|C++)
字符串循环右移K位(1)图解思考(2)代码实现#include <iostream>#include <cstring>void reverse(char str[],int start,int end){ for( ;start < end; start++,end--){ char tmp = str[start]; str[start] = str[end]; str[end] = tmp;
2020-08-10 10:14:20
1690
原创 memcpy&strcpy的实现(考虑内存重叠)
一、memcpy()的实现(1)将src指向的地址为起始地址的连续len字节复制到以dest指向地址为起始地址空间(2)函数返回值:一个指向dest的指针(3)图解说明:(4)代码实现:// 考虑内存重叠void* Memcpy(void *dst,const void *src,size_t len){ if(dst == nullptr || src == nullptr) return nullptr; // reptr保存dst返回值 void *
2020-08-09 21:53:25
375
原创 单链表--合并两个有序链表(C++)
非递归实现(leetcode 21)思路及图解实现代码(注释详解)#include <iostream>#include <vector>using namespace std;struct ListNode { int val; ListNode *next; explicit ListNode(int x) : val(x), next(nullptr) {}};ListNode* createLinkList(const vect
2020-08-07 16:53:30
822
原创 单链表--有环判断|环入口|环长度(C++)
判断单链表有无环(leetcode 141)一、快慢指针(1)快指针:每次走两个节点(2)慢指针:每次走一个节点(3)若两个指针相遇(相等),则一定有环。(4)循环结束条件: fast指针遇空指针(未相遇)(5)时间复杂度:o(n)(6)空间复杂度:o(1)struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };class Solution
2020-08-07 14:49:11
312
原创 单链表--按位置插入|根据数据查找位置|按位置删除(C/C++)
实现代码如下:#include <iostream>#include <malloc.h>using namespace std;//数据以及结点的类型typedef int data_t;typedef struct node{ data_t data; struct node *next;}linknode_t;// 初始化链表头linknode_t* LinkList_Create(){ //auto head = (link
2020-08-06 19:14:53
971
原创 单链表--逆置(C/C++)
头插法反转链表(非递归实现)在原有链表的基础上,依次将链表头部节点摘下,然后利用头插至新的表头(建议:画图更容易理解过程)实现代码如下:#include <iostream>#include <malloc.h>using namespace std;//节点的类型typedef struct node{ int data; //数据段:存储数据 struct node *next; //地址段:存储下一个节点的地址}linknod
2020-08-06 16:20:56
636
原创 排序算法--快排(递归|非递归实现)
递归 – 单边循环法#include <iostream>using namespace std;int partition(int arr[], int startIndex,int endIndex) { // 取第1个位置(也可以选择随机位置)的元素作为基准元素 int pivot = arr[startIndex]; int mark = startIndex; for(int i=startIndex+1; i<=endIndex; i+
2020-08-04 13:50:56
159
原创 排序算法--冒泡排序(基本|优化)
一、简单版#include <iostream>using namespace std;void swap(int *const p,int * const q);void maopao(int a[],int len);void printArr(int a[],int len);int main(){ int a[] = {8,5,4,3,1}; int len = sizeof(a)/ sizeof(int); // printf("len =
2020-08-03 18:01:42
78
原创 IO多路复用机制(select|poll|epoll) -- 笔记整理
select函数单线程内处理多个IO请求,用户线程可根据自身需求,注册自己需要的socket或IO请求,等有数据上来再进行处理,以提高CPU利用率理解图示int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);1. nfds 【监听】所有文件描述符中,最大文件描述符 +12. readfds 【读】文件描述符监听集合,传入传
2020-07-08 11:17:27
185
原创 网络基础学习整理(一)
一、协议(可理解为规则)传输层 :TCP / UDP应用层 :HTTP / FTP网络层 :IP / ICMP / IGMP网络接口层:ARP / RARP二、协议简单解释TCP:传输控制协议 — 面向连接、可靠、基于字节流UDP: 用户数据报协议- 无连接的、不可靠、面向事务HTTP:互联网应用最广泛的一种网络协议FTP:文件传输协议IP:因特网互联协议ICMP:Internet控制报文协议(TCP/IP协议族的子协议之一)用于IP主机、路由器之间传递控制消息IGMP:In
2020-06-30 17:24:51
227
原创 守护进程-学习demo
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>#include <sys/stat.h>#include <...
2020-06-30 14:52:50
140
原创 C实现创建XML文件 --- 学习笔记(一)
一、创建XML文档的步骤:1.创建一个文档指针pdoc2. 创建一个节点proot,用来代表根节点3. 将proot这个节点设置为根节点4. 添加proot的子节点或者孙子结点,并设置好所有节点的内容和属性5. 最后关闭文档指针,并释放相应内存...
2020-01-07 20:12:12
1175
1
原创 RESTful Web API 开发(C) --- 学习笔记
一、如何解释RESTful API利用URL来指定资源,用HTTP协议说明操作操作资源包括:获取、创建、修改、删除在这里插入代码片
2020-01-06 19:23:21
377
原创 内核链表list的学习笔记(C)
【说明】学习Linux内核list链表,利用list.h中函数实现某些功能;一、将某文件夹下的所有文件部分相关信息插入内核liststruct list_head* get_file_list(const char *dir,struct list_head *head){ struct dirent **namelist; // struct dirent * namelist[]...
2019-09-06 11:31:32
392
原创 Makefile简单模板总结(protobuf-c相关)
【说明】前段时间练习的小项目(带有protobuf-c)顺便练习makefile的编写一、此次makefile的目录结构如下图:二、protobuf-c的目录在其他路径三、makefile编写如下# Makefile for target testCC=gcc# target_nameTARGET = test# src_namesSRCS= $(wildcard *.c) ...
2019-09-04 15:55:30
674
原创 关于《跟我一起写 Makefile》读书笔记整理(三)
【说明:本文是对于《跟我一起写Makefile》自我总结,原作者:陈皓】【参考链接】https://seisman.github.io/how-to-write-makefile/index.html使用条件判断(1)使用的关键字 :ifeq 、else、endif(2)ifeq 的意思表示条件语句的开始,并指定一个条件表达式,表达式包含两个参数,以逗号分隔,表达式以圆括号括起(3)el...
2019-09-03 16:00:30
127
原创 关于《跟我一起写 Makefile》读书笔记整理(二)
【说明:本文是对于《跟我一起写Makefile》自我总结,原作者:陈皓】【参考链接】https://seisman.github.io/how-to-write-makefile/index.html使用变量一、变量的基础(1)(2)(3)二、变量中的变量三、变量的高级用法四、追加变量值五、override指示符六、多行变量七、环境变量八、目标变量九、模式变量...
2019-08-26 16:42:20
131
原创 关于《跟我一起写 Makefile》读书笔记整理(一)
【说明:本文是对于《跟我一起写Makefile》自我总结,原作者:陈皓】【参考链接:https://seisman.github.io/how-to-write-makefile/index.html】Makefile 书写规则一、 规则包含两个部分:一是:依赖关系;二是:生成目标的方法二、 规则的语法(1) targets : prerequisites(2)(Tab键开头) co...
2019-08-08 14:29:32
234
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人