- 博客(36)
- 收藏
- 关注
原创 【Linux开发】|Shell的使用
Shell是一个命令行解释器,遵循一定的语法将输入的命令加以解释,并传给操作系统内核,它为用户提供了一个向Linux发送请求一边运行程序的接口,用户可用用Shell进行启动,挂起,停止,甚至编写一些程序。...
2022-06-07 16:48:32
264
1
原创 【算法小知识】|排序算法
排序算法什么是排序?在计算机中,利用一定的程序,将输入的随机数组进行一定的运算处理,最后输出一个按照一定规则进行排列的数组,为排序。经典的排序算法排序算法解释复杂度冒泡排序重复从输入数组右边进行比较两个相邻数字,根据结果决定是否交换两者位置n^2/2选择排序从待排序的输入数组中找到最小的,然后将其与序列最左边的数字进行交换位置,重复该操作n^2/2插入排序从输入数组的右侧的未排序区域内取出一个数据,然后插入到一排区域的合适位置上,直至所有区域都是已排列数据
2022-05-30 22:16:41
83
原创 雷达原理|雷达概论
雷达的任务雷达是英文 Radar 的音译,源于 Radio Detection and Ranging 的缩写,原意是“无线电探测和测距”,即用无线电方法发现目标并测定它们在空间的位置,因此雷达也称为“无线电定位”。雷达回波中的可用信息当目标的大小,小于雷达的距离分辨率,这是目标可看作为一个点,用于对目标的距离和空间角度进行定位,其位置变化了可以由距离和角度随时间变化的规律中进行得到,并建立对目标的跟踪。当目标的尺寸较大,并且雷达的距离分辨率在以为或者多为上面有足够的分辨率,物体可以由多个散射点组
2022-04-23 15:13:30
5115
原创 Python学习笔记|三十.类、实例和数据封装
类和实例面向对象最重要的概念就是类(Class)和实例(Instance)类是抽象的模板实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。定义类:class 类名(object): passclass后面紧接着是类名,类名通常是大写开头的单词(object),表示该类是从哪个类继承下来的创建实例:根据某个类创建出类的实例,创建实例是通过类名()实现。例:>>> bart = Student()>&g
2022-04-01 16:11:39
164
原创 Python学习笔记|二十九.面向对象编程
面向对象编程面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计——把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消
2022-04-01 16:10:40
108
原创 Python学习笔记|二十八.安装第三方模块
安装第三方模块在Python中,安装第三方模块,是通过包管理工具pip完成的。如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。如果你正在使用Windows,请参考安装Python一节的内容,确保安装时勾选了pip和Add python.exe to Path。在命令提示符窗口下尝试运行pip,如果Windows提示未找到命令,可以重新运行安装程序添加pip。注意:Mac或Linux上有可能并存Python 3.x和Python 2.x,因此对应的pip命令是pip3。
2022-04-01 16:10:01
167
原创 Python学习笔记|二十七.使用模块
使用模块Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。标准模块范例:#!/usr/bin/env python3# -*- coding: utf-8 -*-' a test module '__author__ = 'Genaral'import sysdef test(): args = sys.argv if len(args)==1: print('Hello, world!') elif len(
2022-04-01 16:08:48
458
原创 Python学习笔记|二十六.模块
模块原因:程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。解决方法:很多函数分组,分别放到不同的文件里定义:在Python中,一个.py文件就称之为一个模块(Module)。优点:大大提高了代码的可维护性编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。可以避免函数名和变量名冲突问题:为了解决模块名重复的问题,解决方法:引入按照目录来组织模块的方法,称为:包(Package)若模块名重复,可通过包来组织模块,避免冲突。方法是选择一个顶层包名,将模块放入
2022-04-01 16:07:59
98
原创 Python学习笔记|二十四.装饰器
装饰器定义:在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)本质上,decorator就是一个返回函数的高阶函数。所以,我们要定义一个能打印日志的decorator,可以定义如下:def log(func): def wrapper(*args, **kw): print('call %s():' % func.__name__) return func(*args, **kw) return wrapper观察上面的log,
2022-04-01 16:05:37
102
原创 Python学习笔记|二十三.返回函数、闭包和匿名函数
返回函数函数作为返回值高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数:def lazy_sum(*args): def sum(): ax = 0 for n in args: ax = ax + n return ax return sum调用函数f时,才真正计算求和的结果:>&g
2022-04-01 16:03:55
354
原创 Python学习笔记|二十二.sorted函数
高阶函数之sorted排序算法:Python’内置的sorted()函数可对列表进行排序>>> sorted([36, 5, -12, 9, -21])[-21, -12, 5, 9, 36]sorted()也是一个高阶函数,可接受一个key函数实现自定义排序。>>> sorted([36, 5, -12, 9, -21], key=abs)[5, 9, -12, -21, 36]该排序函数:将所有的元素进行求绝对值后再进行排序针对字符串排序:根据A
2022-04-01 16:01:47
299
原创 Python学习笔记|二十一.map、reduce和filter
高阶函数之map/reducePython内建了map()``reduce()两个函数。map()函数map()接受两个参数:一个是函数一个是interable功能:map将传入的函数依次作用到序列的每个元素上面,然后将结果作为新的Interator返回。例子: >>> def f(x):... return x * x...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>>
2022-04-01 16:00:08
421
原创 Python学习笔记|二十.函数式编程与高级函数
函数式编程函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。编程语言,就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言;越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言。函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!Python对函数式编程提供部分支持。由于Python允许使用
2022-04-01 15:57:49
699
原创 Python学习笔记|十九.迭代器
迭代器直接作用于for循环的数据类型有以下几种:集合数据类型,如list、tuple、dict、set、str等;generator,包括生成器和带yield的generator function。直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstance()判断一个对象是否是Iterable对象:>>> from collections.abc import Iterable>>> isinstance([], Iter
2022-03-30 12:03:54
225
原创 Python学习笔记|十八.生成器
生成器通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。在Python中,这种一边循环一边计算的机制,称为生成器:generator。这样就不必创建完整的list,从而节省大量的空间。创建一个generator:第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator>>> L
2022-03-30 12:03:00
115
原创 Python学习笔记|十七、列表生成器
列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:方法二是:>>> [x * x for x in range(1, 11)]for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方
2022-03-30 12:02:12
2568
原创 Python学习笔记|十六、切片与迭代
切片取一个list或tuple的部分元素是非常常见的操作。笨办法:一个一个进行索引 r = L[0]利用循环进行索引切片方法:L[0:3]:从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。类似的,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片切片: 名称[起始位置:结束位置:步进]Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。迭代定义:如果给定一个list或tuple,我们可以通过for循环来
2022-03-30 12:01:29
337
原创 Python学习笔记|十五、递归函数
递归函数定义:如果一个函数在内部调用自身本身,这个函数就是递归函数。def fact(n): if n==1: return 1 return n * fact(n - 1)fact(n)=n!=1×2×3×⋅⋅⋅×(n−1)×n=(n−1)!×n=fact(n−1)×n优点:定义简单,逻辑清晰。所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。使用递归函数需要注意防止栈溢出。解决递归调用栈溢出的方法是通过尾递归优化,事实上尾递归和循环的效果是一样的
2022-03-30 11:59:39
519
原创 Python学习笔记|十四、函数的参数
函数的参数Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。位置参数def power(x, n): s = 1 while n > 0: n = n - 1 s = s * x return s修改后的power(x, n)函数有两个参数:x和n,这两个参数都是位置参数,调用函数时,传入的两个值按照
2022-03-30 11:58:28
565
原创 Python学习笔记|十三、函数的定义
定义函数定义函数的格式def 函数名 (参数):函数体(函数体中的返回值用return)。例子:def my_abs(x): if x >= 0: return x else: return -x若已经将自定义函数保存在.py文件中,那么可以在当前文件的目录下启动Python解释器,用from 文件名 import 函数名进行导入自定义函数,然后直接在命令行中进行调用。定义空函数该函数什么都不做:def nop():
2022-03-30 11:57:26
2075
原创 Python学习笔记|十二.函数
函数调用函数Python内置了很多有用的函数,我们可以直接调用。函数的参考文档:http://docs.python.org/3/library/functions.html#abs也可以在交互式命令行中:利用help进行过查看帮助信息。数据类型转换函数int():转换为整数类型float():转换为浮点数类型str():转换为字符型类型bool():转换为布尔类型hex():转换为十六进制函数名其实为指向函数对象的引用,完全可以把函数名赋给一个变量。相当于起了一个别名。...
2022-03-30 11:56:22
256
原创 Python学习笔记|十一.字典
dict字典Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list,给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个d
2022-03-30 11:47:13
443
原创 Python学习笔记|十.循环
循环Python的循环有两种,一种是for…in循环,依次把list或tuple中的每个元素迭代出来for … in…所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。names = ['Michael', 'Bob', 'Tracy']for name in names: print(name)range()函数可以生成整数数列,再通过list可转换为列表。注意:生成列表是从整数0开始的。>>> list(range(5))[0,
2022-03-29 20:09:42
331
原创 Python学习笔记|九.条件判断
条件判断IF语句age = 20if age >= 18: print('your age is', age) print('adult')根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做。if…else…规则age = 3if age >= 18: print('your age is', age) print('adult')else: print('your age is
2022-03-29 20:08:48
311
原创 Python学习笔记|八.列表和元组
list列表Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。列出班里所有同学的名字,就可以用一个list表示:>>> classmates = ['Michael', 'Bob', 'Tracy']>>> classmates['Michael', 'Bob', 'Tracy']用索引来访问list中每一个位置的元素,记得索引是从0开始的.>>> classmates[0]'Mic
2022-03-29 20:08:00
116
原创 Python学习笔记|七. 字符串和编码格式化
字符串字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。因此,Unicode字符集应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。Unicode标准也在不断发展,但最常用的是UCS-16编码,用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。ASCII编码是1个字节,而Unicode编码通常是
2022-03-29 20:06:56
101
原创 Python学习笔记|六. 数据类型和变量
数据类型文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种:整数(int):若数字较长,Python允许在数字中间以_分隔浮点数(float):浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的浮点数可以用数学写法,如1.23,3.14,-9.01,等等,但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.
2022-03-29 20:04:54
382
原创 Python学习笔记|五. 输入和输出基本命令
输入和输出基本命令输出(print)用print()在括号中加上字符串,就可以向屏幕上输出指定的文字print('hello, world')可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:>>> print('The quick brown fox', 'jumps over', 'the lazy dog')The quick brown fox jumps over the lazy dogprint()会依次打印每个字符串,遇到逗号“,”会输出一个空格,
2022-03-29 20:03:16
1955
原创 Python学习笔记|四. Python文本编译器
使用文本编译器Python交互式命令行优点是:即可得到结果缺点是:无法保存解决办法:使用文本编辑器进行编写,保存为一个文件,这样即可进行重复运行。常用文本编译器Visual Studio Code微软出品的Visual Studio Code,它不是那个大块头的Visual Studio,它是一个精简版的迷你Visual Studio。Visual Studio Code可以*跨!平!台!*Windows、Mac和Linux通用。注意,不要用Word和Windows自带的记事本,Wor
2022-03-29 20:01:42
669
原创 Python学习笔记|三. Python解释器
Python解释器文件以.py结尾的文件都是Python文件,都需要用Python解释器进行执行。整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。目前存在多种Python解释器:CPython:当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPyt
2022-03-29 19:59:50
161
原创 Python学习笔记|二.Python安装教程
Python 安装教程Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。安装Python就是安装Python解释器(就是负责运行Python程序的),一个命令行交互环境,还有一个简单的集成开发环境。截止到3/29/2022,Python最新版是Python3版本的3.10.4。在Windows上安装Python首先,根据你的Windows版本(64位还是32位)从Python的官方网站
2022-03-29 19:58:26
893
原创 Python学习笔记|一. Python简介
PythonPython是一种什么语言?任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。越高级的语言其运行速度就会越慢。所以Python是一种相当高级的语言。Python简介Python是著名的 龟叔 Guido van Rossum在1989年圣诞节期间,编写的一个编程语言。现在,全世界差不
2022-03-29 19:54:31
705
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人