01-10 周二 PyCharm远程Linux服务器配置进行端点调试

01-10 周二 PyCharm远程Linux服务器配置
时间版本修改人描述
2023年1月10日14:04:15V0.1宋全恒新建文档
2023年2月6日11:03:45V0.2宋全恒添加快捷指令别名的实现方便虚拟环境的切换

简介

使用 PyCharm,您可以使用位于另一台计算机(服务器)上的解释器调试应用程序

参考该博客

工具菜单

 在使用PyCharm时,发现菜单栏中没有工具菜单栏,通过如下的方式进行配置。

image-20230111095503907

配置过程

部署配置

这个步骤的主要目标是可以通过PyCharm自动将本地程序的变更同步到远程的Linux服务器,并且当本地文件和服务器的文件变更时,可以双向获取更新。

 在工具菜单->部署-> 配置,创建SFTP连接(远程文件传输协议)、配置映射和排除的路径

连接配置

image-20230111095927791

 配置过程如下:
在这里插入图片描述

 这样连接配置就正常了,

映射配置

根路径配置

 在连接配置时,注意根路径对于Linux服务器来说,为“/”即可,默认为"/root",我的项目打算部署在路径/home/sqh/FastBuild目录下,则根路径为/即可。

在这里插入图片描述

映射配置

在这里插入图片描述

可以同时添加多个映射,在项目有多个子项目,分别部署到不同位置时。

排除的路径

本小节主要用于一些不需要的同步,比如说pycharm产生的.idea目录,或者在服务器上产生的日志文件,等不需要同步的内容可以采用这种方式进行过滤。

image-20230111102041827

将项目部署到服务器

 操作PyCharm部署项目到服务器的图示如下:
在这里插入图片描述

 然后使用XShell连接34服务器,查看上传的文件目录

在这里插入图片描述

配置python解释器

在这里插入图片描述

 在博客中,查看了上述两个方法进行远程调试,作者推荐第一种。简单浏览了一下第二种方式,需要下载pydevd-pycharm软件包,并且同时需要修改源程序,比较复杂,不再演示。有问题参考博客即可。

创建python虚拟环境

 首先创建python虚拟环境,主要使用virtualenv实现的。

下载virtualenv软件

 软件安装需要使用pip工具。

$ pip3 install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple/
创建虚拟环境
# cd /home/sqh/FastBuild
$ virtualenv envname # 创建一个名字为envname的虚拟环境
$ virtualenv -p python2 envname # 如果安装了多个python版本,如py2和py3,需要指定使用哪个创建虚拟环境
# 注意,要指定python3.7以上的环境为FastBuild搭建环境
$ virtualenv -p /usr/local/dros/python/bin/python3 fastbuild
# 下面的程序用于验证
(fastbuild) root@szfyd-alg02:/home/sqh/FastBuild# /usr/local/dros/python/bin/python3 -V
Python 3.7.14

 具体执行如下:

(fastbuild) root@node34-a100:/home/sqh/FastBuild# virtualenv fastbuild
created virtual environment CPython3.7.0.final.0-64 in 353mscreator CPython3Posix(dest=/home/sqh/FastBuild/fastbuild, clear=False, no_vcs_ignore=False, global=False)seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv)added seed packages: pip==22.3.1, setuptools==65.6.3, wheel==0.38.4activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivatorroot@node34-a100:/home/sqh/FastBuild# cd fastbuild/
root@node34-a100:/home/sqh/FastBuild/fastbuild# ls
bin  lib  pyvenv.cfgroot@node34-a100:/home/sqh/FastBuild/fastbuild# source bin/activate
(fastbuild) root@node34-a100:/home/sqh/FastBuild/fastbuild# pip list
Package    Version
---------- -------
pip        22.2.2
setuptools 63.4.1
wheel      0.37.1[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip

 可以看到在/home/sqh/FastBuild创建了虚拟环境fastbuild:

(fastbuild) root@node34-a100:/home/sqh/FastBuild/fastbuild# ll
total 24
drwxr-xr-x  4 root root 4096 Jan 11 02:52 ./
drwxr-xr-x 10 root root 4096 Jan 11 02:52 ../
drwxr-xr-x  2 root root 4096 Jan 11 02:52 bin/
-rw-r--r--  1 root root   40 Jan 11 02:52 .gitignore
drwxr-xr-x  3 root root 4096 Jan 11 02:52 lib/
-rw-r--r--  1 root root  245 Jan 11 02:52 pyvenv.cfg
激活虚拟环境
root@node34-a100:/home/sqh/FastBuild/fastbuild# cd /home/sqh/FastBuild/fastbuild
root@node34-a100:/home/sqh/FastBuild/fastbuild# source bin/activate
(fastbuild) root@node34-a100:/home/sqh/FastBuild/fastbuild# ll
虚拟环境操作
# 在虚拟环境下查看当前python版本
python -V
# 在虚拟环境下查看当前pip版本
pip -V
# 查看当前虚拟环境安装的模块
pip list
# 于虚拟环境下安装模块
pip install module_name
取消虚拟环境
(fastbuild) root@node34-a100:/home/sqh/FastBuild/fastbuild# which python
/home/sqh/FastBuild/fastbuild/bin/python
(fastbuild) root@node34-a100:/home/sqh/FastBuild/fastbuild# pip -V
pip 22.2.2 from /home/sqh/FastBuild/fastbuild/lib/python3.7/site-packages/pip (python 3.7)(fastbuild) root@node34-a100:/home/sqh/FastBuild# deactivate
root@node34-a100:/home/sqh/FastBuild# 
root@node34-a100:/home/sqh/FastBuild# which python
/root/anaconda3/bin/python
root@node34-a100:/home/sqh/FastBuild# which pip
/root/anaconda3/bin/pip
在虚拟环境中配置FastBuild依赖

 项目的依赖均位于requirements.txt.

 可以看到起初创建的虚拟环境中没有什么软件,执行软件安装,下载需要的依赖。

确保已经激活了fastbuild环境。

(fastbuild) root@node34-a100:/home/sqh/FastBuild# pip list
Package    Version
---------- -------
pip        22.2.2
setuptools 63.4.1
wheel      0.37.1[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip
(fastbuild) root@node34-a100:/home/sqh/FastBuild# pip install -r requirements.txt 
Collecting anyio==3.6.1Using cached anyio-3.6.1-py3-none-any.whl (80 kB)
Collecting APScheduler==3.9.1Using cached APScheduler-3.9.1-py2.py3-none-any.whl (59 kB)
Collecting autopep8==1.7.0Using cached autopep8-1.7.0-py2.py3-none-any.whl (45 kB)
Collecting bcrypt==4.0.0Using cached bcrypt-4.0.0-cp36-abi3-manylinux_2_24_x86_64.whl (594 kB)
Collecting certifi==2022.6.15Using cached certifi-2022.6.15-py3-none-any.whl (160 kB)
Collecting cffi==1.15.1Using cached cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (427 kB)
Collecting charset-normalizer==2.1.0Using cached charset_normalizer-2.1.0-py3-none-any.whl (39 kB)
Collecting click==8.1.3Using cached click-8.1.3-py3-none-any.whl (96 kB)
Collecting colorama==0.4.5Using cached colorama-0.4.5-py2.py3-none-any.whl (16 kB)
Collecting cryptography==38.0.1Using cached cryptography-38.0.1-cp36-abi3-manylinux_2_24_x86_64.whl (4.0 MB)
Collecting distlib==0.3.5Using cached distlib-0.3.5-py2.py3-none-any.whl (466 kB)
Collecting fastapi==0.85.0Using cached fastapi-0.85.0-py3-none-any.whl (55 kB)
Collecting filelock==3.8.0Using cached filelock-3.8.0-py3-none-any.whl (10 kB)
Collecting greenlet==1.1.3Using cached greenlet-1.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (150 kB)
Collecting h11==0.14.0Using cached h11-0.14.0-py3-none-any.whl (58 kB)
Collecting httptools==0.5.0Downloading httptools-0.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (404 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 404.7/404.7 kB 1.7 MB/s eta 0:00:00
Collecting idna==3.3Using cached idna-3.3-py3-none-any.whl (61 kB)
Collecting loguru==0.6.0Using cached loguru-0.6.0-py3-none-any.whl (58 kB)
Collecting paramiko==2.11.0Using cached paramiko-2.11.0-py2.py3-none-any.whl (212 kB)
Collecting platformdirs==2.5.2Using cached platformdirs-2.5.2-py3-none-any.whl (14 kB)
Collecting pycodestyle==2.9.1Using cached pycodestyle-2.9.1-py2.py3-none-any.whl (41 kB)
Collecting pycparser==2.21Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Collecting pydantic==1.10.2Using cached pydantic-1.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.8 MB)
Collecting PyNaCl==1.5.0Using cached PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (856 kB)
Collecting python-dotenv==0.21.0Downloading python_dotenv-0.21.0-py3-none-any.whl (18 kB)
Collecting pytz==2022.4Using cached pytz-2022.4-py2.py3-none-any.whl (500 kB)
Collecting pytz-deprecation-shim==0.1.0.post0Using cached pytz_deprecation_shim-0.1.0.post0-py2.py3-none-any.whl (15 kB)
Collecting PyYAML==6.0Using cached PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (596 kB)
Collecting requests==2.28.1Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting six==1.16.0Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting sniffio==1.3.0Using cached sniffio-1.3.0-py3-none-any.whl (10 kB)
Collecting SQLAlchemy==1.4.41Using cached SQLAlchemy-1.4.41-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB)
Collecting starlette==0.20.4Using cached starlette-0.20.4-py3-none-any.whl (63 kB)
Collecting toml==0.10.2Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting typing_extensions==4.3.0Using cached typing_extensions-4.3.0-py3-none-any.whl (25 kB)
Collecting tzdata==2022.4Using cached tzdata-2022.4-py2.py3-none-any.whl (336 kB)
Collecting tzlocal==4.2Using cached tzlocal-4.2-py3-none-any.whl (19 kB)
Collecting urllib3==1.26.11Using cached urllib3-1.26.11-py2.py3-none-any.whl (139 kB)
Collecting utils==1.0.1Downloading utils-1.0.1-py2.py3-none-any.whl (21 kB)
Collecting uvicorn==0.18.3Using cached uvicorn-0.18.3-py3-none-any.whl (57 kB)
Collecting virtualenv==20.16.3Using cached virtualenv-20.16.3-py2.py3-none-any.whl (8.8 MB)
Collecting watchfiles==0.18.1Downloading watchfiles-0.18.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 9.0 MB/s eta 0:00:00
Collecting websockets==10.4Downloading websockets-10.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (106 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.7/106.7 kB 31.8 MB/s eta 0:00:00
Collecting win32-setctime==1.1.0Using cached win32_setctime-1.1.0-py3-none-any.whl (3.6 kB)
Requirement already satisfied: setuptools>=0.7 in ./fastbuild/lib/python3.7/site-packages (from APScheduler==3.9.1->-r requirements.txt (line 2)) (63.4.1)
Collecting importlib-metadataDownloading importlib_metadata-6.0.0-py3-none-any.whl (21 kB)
Collecting backports.zoneinfoUsing cached backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_x86_64.whl (70 kB)
Collecting zipp>=0.5Downloading zipp-3.11.0-py3-none-any.whl (6.6 kB)
WARNING: The candidate selected for download or install is a yanked version: 'apscheduler' candidate (version 3.9.1 at https://files.pythonhosted.org/packages/e4/9f/c3937d4babe62504b874d4bf2c0d85aa69c7f59fa84cf6050f3b9dc5d83e/APScheduler-3.9.1-py2.py3-none-any.whl (from https://pypi.org/simple/apscheduler/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4))
Reason for being yanked: Not compatible with Python 2.7
Installing collected packages: pytz, distlib, zipp, win32-setctime, websockets, utils, urllib3, tzdata, typing_extensions, toml, sniffio, six, PyYAML, python-dotenv, pycparser, pycodestyle, platformdirs, loguru, idna, httptools, greenlet, filelock, colorama, charset-normalizer, certifi, bcrypt, backports.zoneinfo, requests, pytz-deprecation-shim, pydantic, importlib-metadata, h11, cffi, autopep8, anyio, watchfiles, virtualenv, tzlocal, starlette, SQLAlchemy, PyNaCl, cryptography, click, uvicorn, paramiko, fastapi, APScheduler
Successfully installed APScheduler-3.9.1 PyNaCl-1.5.0 PyYAML-6.0 SQLAlchemy-1.4.41 anyio-3.6.1 autopep8-1.7.0 backports.zoneinfo-0.2.1 bcrypt-4.0.0 certifi-2022.6.15 cffi-1.15.1 charset-normalizer-2.1.0 click-8.1.3 colorama-0.4.5 cryptography-38.0.1 distlib-0.3.5 fastapi-0.85.0 filelock-3.8.0 greenlet-1.1.3 h11-0.14.0 httptools-0.5.0 idna-3.3 importlib-metadata-6.0.0 loguru-0.6.0 paramiko-2.11.0 platformdirs-2.5.2 pycodestyle-2.9.1 pycparser-2.21 pydantic-1.10.2 python-dotenv-0.21.0 pytz-2022.4 pytz-deprecation-shim-0.1.0.post0 requests-2.28.1 six-1.16.0 sniffio-1.3.0 starlette-0.20.4 toml-0.10.2 typing_extensions-4.3.0 tzdata-2022.4 tzlocal-4.2 urllib3-1.26.11 utils-1.0.1 uvicorn-0.18.3 virtualenv-20.16.3 watchfiles-0.18.1 websockets-10.4 win32-setctime-1.1.0 zipp-3.11.0[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip(fastbuild) root@node34-a100:/home/sqh/FastBuild# pip list
Package               Version
--------------------- -----------
anyio                 3.6.1
APScheduler           3.9.1
autopep8              1.7.0
backports.zoneinfo    0.2.1
bcrypt                4.0.0
certifi               2022.6.15
cffi                  1.15.1
charset-normalizer    2.1.0
click                 8.1.3
colorama              0.4.5
cryptography          38.0.1
distlib               0.3.5
...
配置shell快捷命令

 由于在调试时,需要频繁的使用fastbuild,切换到目录,并激活虚拟环境,因此可以使用别名的方式引入shell命令,比如说我们引入fb命令,来自动的切换到工作目录,并激活虚拟环境。可以使用如下配置:

 修改配置文件~/.bashrc,添加alias语句命令,如下所示:

 80 # some more ls aliases81 alias ll='ls -alF'82 alias la='ls -A'83 alias l='ls -CF'84 alias fb='cd /home/sqh/FastBuild; source fastbuild/bin/activate' 

 然后

source ~/.bashrc

 可以看到,在连接服务器之后,可以直接键入命令fb实现目录切换和虚拟环境的激活。

*** System restart required ***
Last login: Mon Feb  6 02:13:29 2023 from 10.11.12.108
root@node34-a100:~# fb
(fastbuild) root@node34-a100:/home/sqh/FastBuild# 

配置远程python解释器

注: 主要是配置项目解释器(通过SSH选取服务端的python解释器)

在这里插入图片描述

 点击下一步,选择Python解释器

在这里插入图片描述

在这里插入图片描述

注: 勾选同步文件夹,由于服务器在FastBuild目录下产生了目录fastbuild虚拟环境,因此可以使用之前排除的路径,把该目录排除,以防止服务器该目录同步到本机。

在这里插入图片描述

相当于在PyCharm中新建了一个python解释器变量。接下来要指定项目使用该解释器

配置使用Python解释器

 修改项目调试的python解释器环境
在这里插入图片描述

image-20230111112639346

远程调试

 远程调试服务器代码,就可以通过pycharm来启动项目了。

image-20230111142306429

总结

 本文详细的描述了使用PyCharm来调试远程Linux服务器的代码,通过直接调试服务器上的的代码,可以解决在Windows上的差异(比如说路径分隔符),而且在使用FastBuild进行镜像构建的时候,需要使用docker运行环境,在真实环境上运行能够更加方便快捷的开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/161056.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python---if选择判断结构、嵌套结构(if elif else)

1、if选择判断结构作用 if 英 /ɪf/ conj. &#xff08;表条件&#xff09;如果&#xff1b;&#xff08;表假设&#xff09;要是&#xff0c;假如&#xff1b;无论何时&#xff1b;虽然&#xff0c;即使&#xff1b;&#xff08;用于间接疑问&#xff09;是否&#xff1b…

【配置环境】SQLite数据库安装和编译以及VS下C++访问SQLite数据库

一&#xff0c;环境 Windows 11 家庭中文版&#xff0c;64 位操作系统, 基于 x64 的处理器SQLite - 3.43.2Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.5.3 二&#xff0c;SQLite简介 简要介绍 SQLite&#xff08;Structured Query Language for Lite&a…

windows常用命令

一.文件操作 dir&#xff1a;查看文件当前路径目录列表 cd .. &#xff1a;返回上一级目录 cd 路径&#xff1a;进入路径

2023年10月wxid转微信号方法

在9月份tx做了一次调整&#xff0c;以前很多wxid转微信号的办法都失效了。 今天分析了一下微信。捣鼓了一下午。现在已经实现了wxid转微信号。不管对方是否在群里&#xff0c;是否是你的好友 都能转。一分钟出60条左右。 我们先创建一个文本文件&#xff0c;将要转换wxid 放进…

【Mysql】Innodb数据结构(四)

概述 MySQL 服务器上负责对表中数据的读取和写入工作的部分是存储引擎 &#xff0c;而服务器又支持不同类型的存储引擎&#xff0c;比如 InnoDB 、MyISAM 、Memory 等&#xff0c;不同的存储引擎一般是由不同的人为实现不同的特性而开发的&#xff0c;真实数据在不同存储引擎中…

手把手教你随机合并全部视频添加同一个文案的方法

今天&#xff0c;我将为你介绍一个简单易行的方法&#xff0c;只需两个步骤&#xff0c;让你轻松实现批量合并视频。 1. 在浏览器中搜索并下载“固乔智剪软件”&#xff0c;然后打开软件。这款软件是一款专业的视频剪辑工具&#xff0c;它提供了多种视频剪辑功能&#xff0c;包…

【网络协议】聊聊从物理层到MAC层 ARP 交换机

物理层 物理层其实就是电脑、交换器、路由器、光纤等。组成一个局域网的方式可以使用集线器。可以将多台电脑连接起来&#xff0c;然后进行将数据转发给别的端口。 数据链路层 Hub其实就是广播模式&#xff0c;如果A电脑发出一个包&#xff0c;B、C电脑也可以收到。那么数据…

解决 MyBatis 一对多查询中,出现每组元素只有一个,总组数与元素数总数相等的问题

文章目录 问题简述场景描述问题描述问题原因解决办法 问题简述 笔者在使用 MyBatis 进行一对多查询的时候遇到一个奇怪的问题。对于笔者的一对多的查询结果&#xff0c;出现了这样的一个现象&#xff1a;原来每个组里有多个元素&#xff0c;查询目标是查询所查的组&#xff0c;…

vue使用高德地图轨迹活动效果demo(整理)

在html页面引入您自己的key <script language"javascript" src"https://webapi.amap.com/maps?v1.4.15&key6b26c2c58770d13a4ecf2b96615dbaee"></script><template><div class"index"><div id"amapContain…

小程序-uni-app:将页面(html+css)生成图片/海报/名片,进行下载 保存到手机

一、需要描述 本文实现&#xff0c;uniapp微信小程序&#xff0c;把页面内容保存为图片&#xff0c;并且下载到手机上。 说实话网上找了很多资料&#xff0c;但是效果不理想&#xff0c;直到看了一个开源项目&#xff0c;我知道可以实现了。 本文以开源项目uniapp-wxml-to-can…

Kotlin中的比较运算符

在Kotlin中&#xff0c;我们可以使用比较运算符进行值的比较和判断。下面对Kotlin中的等于、不等于、小于、大于、小于等于和大于等于进行详细介绍&#xff0c;并提供示例代码。 等于运算符&#xff08;&#xff09;&#xff1a; 等于运算符用于判断两个值是否相等。如果两个值…

Leetcode刷题详解——长度最小的子数组

1. 题目链接&#xff1a;209. 长度最小的子数组 2. 题目描述&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度**。**如果不…

纽交所上市公司安费诺宣布将以1.397亿美元收购无线解决方案提供商PCTEL

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;纽交所上市公司安费诺(APH)宣布将以每股7美元现金&#xff0c;总价格1.397亿美元收购无线解决方案提供商PCTEL(PCTI)。 该交易预计将在第四季度或2024年初完成。 Lake Street Capital Markets担任…

python打开.npy文件的常见报错及解决

import numpy as npdata np.load("texture_data_256.npy") print(data) 解决办法&#xff1a; import numpy as npdata np.load("texture_data_256.npy",allow_pickleTrue) print(data) 再次运行后出现乱码&#xff01;&#xff01;&#xff01; 由于…

猿创征文|分布式国产数据库 TiDB 从入门到实战

写在前面 本文讲解的是目前欢迎程度最高分布式国产数据库 TiDB&#xff0c;详细讲解了 TiDB 的由来、架构、SQL 基本操作、SpringBoot 整合 TiDB 等内容。 目录 写在前面一、概述二、与 MySQL 兼容性对比三、安装使用四、SQL 基本操作4.1、库操作4.2、表操作4.3、索引操作4.4、…

【网络协议】聊聊ifconfig

我们知道在linux是ifconfig查看ip地址&#xff0c;但是ip addr也可以查看 IP 地址是一个网卡在网络世界的通讯地址&#xff0c;相当于我们现实世界的门牌号码。 从IP地址的划分来看&#xff0c;C类地址只可以容纳254个&#xff0c;而B类6W多&#xff0c;那么又没有一种折中的…

【Python数据分析工具】

文章目录 概要整体架构流程技术名词解释 概要 数据分析是一种通过收集、处理、分析和解释大量数据&#xff0c;以发现有价值信息、洞察趋势、制定决策并解决问题的过程。在现代科技和互联网的推动下&#xff0c;数据分析变得日益重要。它不仅仅是对数字和图表的简单解释&#…

【Hello Algorithm】暴力递归到动态规划(四)

动态规划的数组压缩技巧 - 机器人走格子问题 题目是leetcode62题目原题 表示如下 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中…

牛客:FZ12 牛牛的顺时针遍历

FZ12 牛牛的顺时针遍历 文章目录 FZ12 牛牛的顺时针遍历题目描述题解思路题解代码 题目描述 题解思路 通过一个变量来记录当前方向&#xff0c;遍历矩阵&#xff0c;每次遍历一条边&#xff0c;将该边的信息加入到结果中 题解代码 func spiralOrder(matrix [][]int) []int {…