自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 自学Python day16-爬虫概述

概念模拟客户端(主要指浏览器)发送网络请求,接收请求响应,按一定的规则,自动抓取互联网信息的程序即:模拟浏览器、发送请求、获取响应只要是客户端能做的事爬虫都能做爬虫也只能获取客户端展现出来的数据核心问题:怎么把自己模拟成浏览器作用1、数据采集2、软件测试3、抢票4、投票etc.分类按数量:通用爬虫、聚焦爬虫(爬取数量有上限)按目的:功能性爬虫、数据增量爬虫根据url和页面内容是否变化:URL变化/不变化,内容变化的数据增量爬虫流程url_list -> 发送请求获取响

2021-07-19 16:01:00 94

原创 自学Python day12-函数plus

变量作用域二级标题三级标题四级标题五级标题六级标题

2021-07-10 17:00:05 218

原创 自学Python day11-函数

先定义后使用语法:def 函数名(参数):xxxxxxxx调用函数::函数名 (参数)打印图形# 打印一条横线def print_line(): print('-' * 20)# 打印多条横线def print_lines(num): i = 0 while i < num: print_line() i += 1print_lines(5)函数的说明文档只有在函数内部第一行的位置且为多行注释时才是说明文

2021-06-29 22:24:11 223

原创 自学Python day10-推导式

一级标题二级标题三级标题四级标题五级标题六级标题

2021-06-28 07:35:41 112

原创 自学Python day09-公共操作

运算符项目Value+合并—字符串、列表、元组(字典不能合并,会报错)*复制—字符串、列表、元组(字典不能合并,会报错)in元素是否存在—字符串、列表、元组、字典not in元素是否不存在—字符串、列表、元组、字典len()计算容器中的元素个数str1 = 'abcdefg'list1 = [10, 20, 30, 40, 50]t1 = (10, 20, 30, 40, 50)s1 = {10, 20, 30, 40, 50}dict1 =

2021-06-08 22:53:37 39

原创 自学Python day08-字典和集合

应用场景字典是不支持下标的,数据和数据顺序没有关系,它以键值对的形式出现二级标题三级标题四级标题五级标题六级标题

2021-06-08 11:13:18 113 1

原创 自学Python day07-元组和列表

列表二级标题三级标题四级标题五级标题六级标题

2021-05-31 14:44:07 50

原创 自学Python day06-字符串

下标又叫索引,也叫编号字符串单、双、三引号都可以表示字符串切片截取字符串中的一部分语法:序列名[开始位置下标:结束位置下标:步长]注意:下标左闭右开,步长默认为1操作方法六级标题...

2021-05-06 11:41:13 60

原创 自学Python day05-for循环

语法for 临时变量 in 序列名:xxxx…序列的意思是,一个数据是由多个数据组成的,例如列表:【1,2,3,3,4,5,6,7】,也可以是字符串break和continue在for循环中的退出规则"""这是break的退出方式for i in str1: if i == 'e': print(f'不打印e,然后终止') break print(i)"""str1 = 'itheima'# 这是continue的退出方式for i in

2021-05-05 14:47:48 231

原创 自学Python day04-while循环

写程序的步骤1、拿到需求首先应该分析需求2、拆分步骤,明确每一步应该干哪些事情3、写代码while语法:while 条件:代码1代码2…while应用三级标题四级标题五级标题六级标题

2021-04-29 21:20:58 169

原创 自学Python day03-if语句

语法if 条件:条件成立执行代码1 (前面一个tab的距离)条件成立执行代码2…Python的语法中,缩进也是非常必要的,if语句块中的内容是带缩进的所有代码Ctrl+D是复制该行并粘贴的快捷键实例:上网# 用户输入年龄,判断能否上网age = int(input(f'请输入你的年龄:'))if age < 18: print(f'您的年龄是{age}岁,不符合要求,不准上网')else: print(f'您的年龄是{age}岁,符合要求,请上网')pr

2021-04-26 22:16:33 78

原创 自学Python day02-数据类型转换和运算符

输入使用input函数进行输入输入的内容全部当做字符串处理转换数据类型要用输入的内容进行计算,就需要强转转换数据类型也有函数"""把input收到的数据转换成其他类型转换后检查是否转换成功"""num_str = input("请输入数字:")print(f'{num_str}')print(f'{type(num_str)}')num = int(num_str)print(f'转换后的{num_str}')print(f'{type(num)}')注意:eval(

2021-04-19 21:07:55 84 3

原创 自学Python day01-变量和数据类型

注释单行注释注释一行,# 注释内容极简单的文字才放到一行的后面,否则都是放在上一行或者下一行#后面要加一个空格(这是习惯)ctrl+/多行注释“““注释内容”””‘’’注释内容‘’’这两种写法(单引号或者双引号)都可以多行注释通常是对代码块进行注释用的变量定义变量变量名 = 值标识符命名规则:1、数字、字母、下划线组成2、数字不能开头3、不能和关键字相同4、严格区分大小写命名习惯:1、见名知意2、大驼峰:每个单词首字母大写3、小驼峰:第二个词以后的单词首

2021-04-15 22:32:56 56

原创 自学Python day01-pycharm的安装和使用

安装下载最新的pycharm,刚开始学的时候不用下professional版的,用community版就可以了hello world和C语言的不同的是:一句话结束不需要分号、打印的函数是print、控制台内嵌在pycharm里面,不会出现一个黑框注意事项给项目取名字的时候,如果考虑到后期要上传服务器,严禁使用中文命名运行文件直接右键运行就行pycharm的基本设置1、外观设置2、解释器设置3、项目管理功能设置外观设置文件-设置-外观和行为-外观—更改字体及风格(这改的是窗口工具栏等的

2021-04-13 20:53:13 70

原创 自学C day13-结构体、共用体、联合体

结构体struct test{ //定义的时候没有初值char ch;short sh;int var;}联合体(也就是共用体)union test{ char ch;short sh;int var;}联合体的特性1、内部所有成员变量地址一致,等同于整个联合体的地址2、联合体的大小是内部成员变量中最大的那个成员变量的大小(对齐)3、修改其中任意一个成员变量的值,其他成员变量会随之改变枚举(和上面没什么关系,只是定义方法和上面相似)enum color{里面存放枚举

2021-03-18 15:27:52 46

原创 自学C day13-内存管理

局部变量定义在函数内部的变量作用域:从定义位置开始到包裹该变量的第一个右大括号结束全局变量定义在函数外部的变量作用域:从定义位置开始,默认到本文件内部,其他文件如果想使用,可以通过声名的方式将作用域导出:extern int a;(这是显示声名)静态全局变量定义语法:在全局变量定义之前添加static关键字作用域:被限制在本文件内部,不允许通过声名导出到其他文件静态局部变量定义语法:在局部变量定义之前添加static关键字特性:静态局部变量只定义一次,在全局位置,通常用来做计数器作用

2021-03-16 11:31:53 67

原创 自学C day12-指针和字符串

指针和字符串当字符串(字符数组)做函数参数时,不需要提供两个参数,因为每个字符串都有\0的结束标记字符串比较stecmp两个字符串挨个相比,如果都相等 ,就返回0,不同返回1(第一个字符串大)或-1(第二个字符串大),这与元素个数无关,比出大小了之后就不往后面比了后面直接丢掉比的是ASCII码#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h

2021-03-11 21:56:51 69

原创 自学C day11-数组做函数参数

数组做函数参数三种写法均可void bubblesort(int arr[10]) == void bubblesort(int arr[]) == void bubblesort(int *arr)数组做函数参数时,传递的不再是整个数组,而是数组的首地址,等价于*arr,大小就是一个指针的大小,所以求sizeof就会出问题了在自定义的函数里面就不能用 n = sizeof(arr) / sizeof(arr[0])求元素个数了但是在main函数里面可以所以,当整型数组做函数参数时,通常在函数

2021-03-08 11:31:34 76

原创 自学C day11-指针后续

一级标题指针前面的类型并不是决定存储空间大小数据类型对指针的作用:1、间接引用:决定了从指针存储的地址开始,向后读的字节数,与指针本身的存储空间无关例如:char *p = &a; 就会从低地址开始读一个字节的内容出来2、加减运算:决定了指针+1、-1操作向后加过的字节数用指针操作数组#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdl

2021-03-04 15:56:49 55 1

原创 自学C day11-指针

指针和内存单元内存单元:计算机中内存最小的存储单位,大小是一个字节指针:就是地址定义和使用int a = 10;int *p = &a;初始化必须是用地址给它初始化使用:*p = 250 //指针的解引用/间接引用*p:将p 变量的内容取出,当成地址看待,找到该地址对应的内存空间如果做左值:存数据到空间中如果做右值:取出空间中的内容野指针、空指针void *:万能指针/泛型指针的大小与类型无关,只与当前使用的平台架构有关为了杜绝野指针,有了空指针int *p =

2021-02-28 14:40:55 46

原创 自学C day10-函数

作用提高代码的复用率提高程序的模块化组织性分类系统库函数和用户自定义函数系统库函数:1、导入头文件2、根据函数原型调用用户自定义:除了需要提供函数原型之外,还需要提供函数实现随机数1、播种随机数种子:srand(time(NULL));2、引入头文件:#include <stdlib.h> <time.h>3、生成随机数:rand() % 100;函数定义函数原型(返回值类型、函数名、形参列表)和函数体(大括号一对,具体代码实现)int add(in

2021-02-22 14:36:13 28

原创 自学C day10-几个小函数的注意事项

scanf()1、用于存储字符串的空间应该足够大,防止溢出2、用%s,遇到空格和\n 终止3、默认不能接受带有空格的字符串,可以通过正则表达式来接受scanf(“%【^\n】”,str) 接收除去\n之外的所有东西,这样就把空格给包进来了字符串操作函数gets()获取一个字符串,返回字符串的首地址,可以获取带有空格的字符串char *gets(char *s)参数:用来存储字符串的空间返回值:返回实际获取到的字符串首地址gets和scanf都是不安全的字符串获取函数fgets()

2021-02-18 14:41:38 27 1

原创 自学C day09-二维数组

打印数组打印一维数组的话,用一个for循环打印二维数组的话,用两个for循环二级标题三级标题四级标题五级标题六级标题

2021-02-14 10:37:13 89

原创 自学C day09-数组

continue关键字break作用:1、跳出一重循环,即使是用在if里面,也是直接跳出循环2、防止case穿透 如果要跳出两重循环的话,必须借助一个中间变量int flag = 0;for(int m=0 ;m<10;m++){ for(int n=0;n<10;n++){ if(n==5){ flag = 1; break; } if(flag == 1){ break; }}continue作用:结束本次循环,也就是它之后的循环体在本次循环

2021-02-07 17:38:16 37

原创 自学C day09-电子时钟和九九乘法表

scanf的常见错误scanf(“我想输入一个数:%d\n”,&a)不能这么写,如果这么写的话,你输入的数据就必须是:我想输入一个数:a\n才能正确的输入进去。所以scanf里面只能是%d,&ascanf是以换行为终止标记,如果写了\n的话就会出现问题,因为用户的换行符写不进去,如果敲了回车到底是结束标记还是换行是没办法区分的所以写scanf的时候就用空格作为分隔就行了,不要写一些乱七八糟的东西进去循环嵌套外层循环执行一次,内层循环执行一周,整个循环执行的次数就是内层执行的次数*

2021-02-05 10:15:16 85

原创 自学C day09-三种分支结构

顺序说白了就是从上到下执行选择结构if语句:满足或者不满足if(判别表达式){判别表达式为真,执行代码}else{判别表达式为假,执行代码}int main(void) { int score; printf("请输入学生成绩:"); scanf("%d", &score); if (score <= 100 && score >= 90) { printf("优秀\n"); } else if(score < 90 &am

2021-02-02 14:09:36 118

原创 自学C day08-类型转换

隐式类型转换通常由操作系统或者编译器自动进行,不用人为干预:占用字节少的类型向占用字节多的类型转换,保证精度不改变double ← float↑long↑unsigned int↑signed int ← char,short由赋值产生的类型转换:int r = 3;float s = π * r * r;强制类型转换(目标类型)待转换变量(目标类型)待转换表达式通常用于函数调用期间实参给形参传值...

2021-01-30 11:45:20 33

原创 自学C day08-运算符和表达式

算数运算符加减乘除,先后关系和数学一样/是除法取整,%是取余如果分母写成0的话,编译器编译时通不过cpu中的运算器只能做加法和左移位运算,其他的运算符都是通过他们俩模拟出来的自增(++)和自减(–)前缀自增和后缀自增前缀自增:int a = 10++a //a=a+1,先自增再取值a++ //a=a+1 ,先取值,再自增printf(“%d\n”,a++) //显示的a=10printf(“%d\n”,++a) //显示的a=11前缀自增和前缀自减是一样的,只

2021-01-30 11:24:41 48

原创 自学C day08-各种小函数

各种小函数putcharscanf (具有安全隐患:如果存储空间不足,数据也可以存储到内存中,但不被保护)getchar()putchar向屏幕输出一个字符:putchar(‘a’),括号写ASCII码也行,但是不能打印字符串putchar(‘abcz’);这种写法是错的,‘abcz’既不是字符也不是字符串,因为他使用单引号引起来的,但是编译器找不出来错误,会输出最后一个字符Z,原理是向前覆盖常用putchar打印换行符putchar(‘\n’)scanf (具有安全隐患:如果存储空间不足,数据

2021-01-28 11:28:59 29

原创 自学C day07-数值存储

计算机内数值存储方式原反补移存储知识溢出原反补移原码:1、最高位为符号位,0正1负2、0是有正负的反码:(过渡形式,现实中并没有用过)正数的原反补移都一样对负数来讲,反码是符号不变,按位取反补码:正数的原反补移都一样符号不变,按位取反再加一(就是反码+1)溢出的部分直接丢掉人为规定:全0表示0,全1表示-128,所以补码可以表示的区间为-128~127计算机中,存储一律用补码进行存储知识1个char类型数据占1B:7+1,7b数据+1b符号char 类型取值范围-128~12

2021-01-24 00:09:14 44

原创 自学C day07-进制转换

进制转换方法:除2取余法各种进制表示法转换方法方法:除2取余法各种常用进制的转换:10->2 10->8 10->16以及其反向的转换各种进制表示法八进制以0开头16进制以0x开头转换方法eg: 8->10 : 056:5*8^ 1 + 6 * 8^18-》2:一个八进制对应三位二进制2-》8:3位一分16-》2不能直接给变量赋二进制值...

2021-01-18 17:52:54 40

原创 自学C day06-字符/字符串类型

字符类型一级目录大小写转换的两种方法ASCII码表有几个要记一级目录char字符类型:这是用来存储一个字符的。格式匹配符用%c格式匹配符如果是%d的话,输出的就是对应的ASCII码,%c就是对应的字符大小写转换的两种方法第一种方法是大写直接加32,第二种是大写先转成ASCII码再转换成变化后的ASCII码再用字符输出;tip:大小写之间差32,A在前65开始,a在后97开始#include <stdio.h>int main(void) { int ch1,ch2; ch

2021-01-15 15:24:37 34

原创 自学C day06-整型

整型整型的各种类型定义sizeof不是函数默认定义出来的都是有符号的(signed,超级不常用)整型的各种类型定义不同种类的整型所开辟的内存空间大小不同int:int a = 10;short:short a = 10;long:long a = 10;long long:long long a = 10;sizeof不是函数sizeof(变量名)/(类型名)sizeof是一种关键字,它的用法又和函数有点像;它可以求大小long要分系统,Windows下是4B在Linux系统

2021-01-14 18:00:36 40

原创 自学C day04-调试快捷键(部分)

VS快捷键解释Ctrl+k+Ctrl+f自动排版Ctrl+k+Ctrl+c自动单行注释所选中的所有行Ctrl+k+Ctrl+u批量解除注释Ctrl+F5不调试直接运行Ctrl+k+shift+b编译不允许F10next调试(不进函数)F11单步(进函数)...

2021-01-04 20:25:40 73

原创 自学C day04-调试

调试基本思想方法反汇编添加行号方法:工具–》选项–》文本编辑器–》c/c+±-》行号勾选–》应用基本思想程序的顺序执行;到了某个地方停下来;方法1、程序块合适的位置设置断点2、F5调试(Ctrl+F5是不调试直接执行)3、默认停止的位置是尚未执行的指令,例如停在第九行,第九行没有执行4、如果没有对变量初始化的话,系统会分配随机数,不会是空5、F11是逐行执行下一条,鼠标放到变量上会显示当前变量的值,如果不想一个一个显示就把窗口调出来:调试–》窗口–》监视,要监视的变量在监视窗口中双击自己

2021-01-04 20:15:17 28

原创 自学C day03-CPU内部结构和寄存器

CPU内部结构和寄存器32b和64b系统区别寄存器vs缓存vs内存汇编32b和64b系统区别说的就是总线位数8b寄存器为A/B/C/D;这四个寄存器的名字并非只是四个字母而已,而是各单词的简写按顺序排列起来正好是ABCD;16b寄存器的名字是8b的分别在后面加X,成为AX/BX/CX/DX;32b寄存器前面加E成为EAX/EBX/ECX/EDX;64b的把E变成R成为RAX/RBX/RCX/RDX;本质没变,就是大小变了而已寄存器vs缓存vs内存只用注意缓存和寄存器不是一个东西就行了汇

2021-01-03 23:11:46 97

原创 自学C day02-编译四步骤

day02编译四步骤一级目录二级目录三级目录一级目录二级目录三级目录 预处理(-E)--》 编译(-S)--》 汇编(-c)---》 链接(无参数)hello.c --> hello.i --> hello.s --> hello.o --> hello.exegcc -E hello.c -o hello.i:对hello。c的源文件进行预处理,生成hello.i预处理文件;gcc -S hello.i -o hello.s:生成h

2021-01-01 13:20:04 39

原创 自学C day01-Hello World

Hello world的第一次使用头文件函数主体一闪而过的黑框框头文件#include是标准格式,没有发挥的空间;<>表示系统自带的函数库,""双引号表示用户自定义的库函数;stdio.h是标准输入输出库;函数主体main()指函数的入口,事实上main也是一个函数,int表示main()函数返回的是整形值;printf()用的就是stdio.h,如果不写这个头文件会出现这样的错误严重性 代码 说明 项目 文件 行 禁止显示状态警告 C4013 “printf”未定义;假设外

2020-12-31 10:19:09 573

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除