当前位置: 首页 > news >正文

搭建 Python 环境 | Python、PyCharm

计算机

计算机能完成的工作:

  1. 算术运算
  2. 逻辑判断
  3. 数据存储
  4. 网络通信
  5. …更多的更复杂的任务

以下这些都可以称为 “计算机”:

在这里插入图片描述

一台计算机主要由以下这几个重要的组件构成

  1. CPU 中央处理器:大脑,算术运算,逻辑判断

  2. 存储器:(内存,外存) 存储数据

    • 内存外存 (硬盘等) 区别:
      1.内存的存储空间较小,外存的存储空间较大
      2.内存的访问速度快,外存的访问速度慢
      3.内存比外存成本更高
      4.内存上的数据容易丢失(断电,数据就没了),外存上的数据能够持久化存储(断电数据也在)

    (相对于内存来说,存的更长久~ 一般机械硬盘存储数据的时间是几年到十几年~)

  3. 输入设备:键盘,鼠标,麦克风

  4. 输出设备:显示器,音箱,耳机,打印机

    有的设备,既是输入设备,又是输出设备
    触摸屏~网卡

PS: CPU 是目前人类科技的巅峰之作,科技含量能和 CPU 相提并论的,只有氢弹了
美国限制向中国出口 “芯片”,这里的芯片主要指的就是 CPU,目前国内虽然有自主研发 CPU 的能力, 但是整体的水平,相比于国际一线的 Intel, AMD 等厂商相比,还是有一定的差距的

PSS: 其实显卡(GPU)是和 CPU 类似的计算芯片,
CPU 是 “通用计算芯片”,可以处理各种场景下的各种问题, 就像高校培养的学生,可以在各个行业各个领域贡献力量

GPU 是 “专用计算芯片”,特别擅长处理浮点数运算,就像计算机培养的学生,专注于互联网软件技术

以上的组成结构, 称为 “冯诺依曼体系结构” . 冯诺依曼大佬, 正是计算机的祖师爷

冯诺依曼除了是计算机祖师爷之外,还是一位数学家,物理学家,化学家,“博弈论” 的创始人,参与过曼哈顿计划 (担任原子弹制造顾问)
据传闻,冯诺依曼大佬六岁心算八位数除法,八岁掌握微积分,十岁通读了世界史,十七岁发表了第一篇数学方面的论文
计算机的祖师爷,除了冯诺依曼之外, 还有一位图灵大佬,也在二战中发挥了至关重要的作用


编程

计算机需要硬件赋予之躯体,也需要软件赋予之灵魂

“软件” (或者叫做 程序),指挥了计算机要按照什么样的规则来执行任务

制作软件,就是在明确这个软件要完成什么样的任务,这个制作软件的过程,就称为“软件开发",或者也可以叫做"编程"

编程其实是一个比较严谨,也比较复杂的事情,因此就衍生出了一个专门负责编程的职业,也就是程序员

程序员进行编程的过程中,需要使用一个专门的方式和计算机沟通,就是 “编程语言”,Python 就是编程语言中的重要一员!

使用编程语言编写软件的具体过程,就称为 “软件开发”,俗称 “敲代码”

编程语言有哪些

编程语言大体可以分成三个大类

  • 机器语言
  • 汇编语言
  • 高级语言

其中机器语言和汇编语言都是更贴近计算机的,人类理解起来并不容易
因此目前程序员使用的编程语言主要是高级语言

高级语言的种类有很多很多,以下列出的都是实际开发中常用的编程语言

在这里插入图片描述


Python 背景知识

1、Python

吉多·范罗苏姆(Guido van Rossum) 是一个荷兰程序员(人称龟叔,名字前三个字母是 Gui)

在这里插入图片描述

龟叔在 1989 年圣诞节的时候(当时 33 岁),因为在家里待着无聊,为了打发时间,开始了 Python 的开发
第一个正式版本发布于 1991 年
1991 年是一个神奇的年份
Python,万维网,Linux,Vim,Qt,第一台笔记本电脑,都诞生于 1991 年

2、Python 都能做什么?

经历了多年的发展,Python 目前是一个应用场景非常广泛的编程语言

  • 科学计算&数据分析
  • Web 开发(搭建网站)
  • 自动化运维
  • 人工智能
  • 爬虫程序
  • 自动化测试

在这里插入图片描述

3、Python 的优缺点

优点:

  • 语法言简意赅,容易上手
  • 功能强大,用途广泛
  • 生态丰富,具有海量的成熟第三方库
  • 方便调用 C/C++ 编写的代码进行 高性能/系统级 操作

缺点:

  • 执行效率比较弱
  • 对于多核心并发程序支持偏弱
  • 动态类型系统对于大型项目不太友好

4、Python 的前景(钱景)?

虽然 Python 的应用场景很多,但是纯粹使用 Python 的岗位是比较少见的

更常见到的情况是,把 Python 作为一个辅助性质的语言

在工作中,Python 更像是一个工具,需要用到的时候随手拿起来就用,能够方便的解决不少问题
这就像一局王者荣耀,有人打的是 carry,有人打的是辅助


搭建 Python 环境

要想能够进行 Python 开发,就需要搭建好 Python 的环境
需要安装的环境主要是两个部分:

  • 运行环境:Python
  • 开发环境:PyCharm

1、安装 Python

关于 Python 版本的补充

现在主流使用的 Python 版本是 Python 3 系列,但是以后在公司中,接触到一些比较老的项目,可能还在使用 Python 2
3 系列 和 2 系列 之间的语法还是存在不小差别的. 咱们课堂上学习的内容主要是依据 Python 3 系列展开

注意: 最好勾选下 “Add Python 3.10 to PATH” 这个选项
要记得 Python 的安装目录(后面可能会用到)

在这里插入图片描述

其中最关键的就是这个 python.exe,后续运行 Python 程序,全靠这个 python.exe

在这里插入图片描述

如果直接双击这个 python.exe ,就会打开 Python 的交互式解释器(控制台程序),在这个交互式解释器中,就可以输入 Python 代码了
直接输入 print(‘hello’) 这句代码,按下 enter 键,则打印出了 hello 这样的结果


2、安装 PyCharm

虽然通过交互式解释器可以执行 Python 代码了,但是代码写起来并不方便,就需要更专业的开发工具来编写 Python 代码
目前业界常用的 Python 开发工具,主要有下列选项

在这里插入图片描述

其中最主流的开发工具就是 PyCharm 和 VS Code 了

PyCharm

PS: JetBrains 是捷克的一家互联网公司,主要的业务就是开发编程工具. 像 Java 的 IDEA,C++ 的 CLion,Python 的 PyCharm,Go 的 GoLand 等等都是出于 JetBrains 之手,这些工具功能都非常强大,深受广大程序猿的喜爱,因此网友们也亲切的称呼这些开发工具为 “JB 全家桶”

点击方框圈起来的位置,进行下载

在这里插入图片描述

PS: PyCharm 有三个版本

  • 专业版 (Professional Edition)

  • 社区版 (Community Edition)

  • 教育版 (Educational Edition)

专业版 相比于 社区版,功能要更丰富一些,但是专业版收费,社区版免费(显然要白嫖)
教育版功能和专业版相同,但是需要凭 edu 邮箱去 JB 官网申请

建议把这个选项勾上,这样在任意目录鼠标右键,就都可以直接用 PyCharm 打开目录了

在这里插入图片描述


3、运行 hello world

1、创建项目,选择项目所在的位置

在这里插入图片描述

2、关联 Python 解释器:

在这里插入图片描述

注意,一般情况下,PyCharm 能够自动识别出 Python 解释器的位置,但是如果没有自动识别出来,
也没关系,点击右侧的 … 选择之前安装的 Python 的路径位置即可

3、右键左侧的项目目录,选择 New -> Python File

在这里插入图片描述

4、运行:Ctrl+Shift+F10

在这里插入图片描述


4、进行基本设置

设置字体大小

PyCharm 默认的字体比较小,看起来很费眼睛,可以设置大一点
选择 File -> Settings

在这里插入图片描述

找到 Editor -> Font,把字体 Size 和 Line height 都适当调整

Size 表示字体大小,数字越大文字越大
Line height 表示行高,数字越大则两行文字之间的间隔就越大

在这里插入图片描述

设置背景图片

在这里插入图片描述


相关文章:

搭建 Python 环境 | Python、PyCharm

计算机 计算机能完成的工作: 算术运算逻辑判断数据存储网络通信…更多的更复杂的任务 以下这些都可以称为 “计算机”: 一台计算机主要由以下这几个重要的组件构成 CPU 中央处理器:大脑,算术运算,逻辑判断 存储器&…...

NPOI 读取和写入Excel

在C#中使用NPOI库读取和写入Excel文件,你需要先下载并安装NPOI库。你可以在NuGet管理器中搜索NPOI并进行安装。 以下是一个使用NPOI库进行Excel文件读取和写入的示例: 读取Excel文件: using NPOI.SS.UserModel; using NPOI.XSSF.UserModel…...

Linux工具【2】(调试器gdb、项目自动化构建工具make/Makefile)

gdb、make/Makefile 引言调试器gdb介绍常用指令 自动化构建工具make/Makefile介绍使用依赖关系与依赖方法编辑Makefile伪目标 总结 引言 在上一篇文章中介绍了Linux中的编辑器vim与编译器gcc与g: 戳我看vim与gcc详解哦 在本篇文章中将继续来介绍Linux中的工具&…...

C++ 网络编程项目fastDFS分布式文件系统(三)-Nginx部分

目录 1. 一些基本概念 1.1 Nginx初步认识 1.2 正向/反向代理 1.3 域名和IP 2. Nginx 安装和配置 2.1 安装 2.2 配置 3. Nginx的使用 3.1 部署静态网页 3.2 反向代理和负载均衡 4 课外知识导读 1. URL和URI ​编辑 2. DNS解析过程 1. 一些基本概念 1.1 Nginx初步认…...

Apache-DBUtils

目录 封装方法 引出dbutils 案例 当关闭connection后,resultset结果集就无法使用了,这就使得resultset不利于数据的管理 封装方法 我们可以将结果集先存储在一个集合中,当connection关闭后,我们可以通过访问集合来访问结果集 …...

LangChain手记 Agent 智能体

整理并翻译自DeepLearning.AILangChain的官方课程:Agent(源代码可见) “人们有时会将LLM看作是知识库,因为它被训练所以记住了来自互联网或其他地方的海量信息,因而当你向它提问时,它可以回答你的问题。有一…...

87-基于stm32单片机粮仓仓库环境温湿度烟雾监测报警系统Proteus仿真+源码

资料编号:087 一:功能介绍: 1、采用stm32单片机OLED显示屏烟雾浓度检测DHT11温湿度电机按键蜂鸣器,制作一个温湿度采集、烟雾浓度采集,OLED显示相关数据, 2、通过按键设置温度上限、烟雾浓度上限&#xff0…...

ChatGPT 调教日记(二):程序员转量化的背景知识

程序员如何学习量化金融 作为一个程序员学习量化金融(quant)是一个不错的选择。以下是一些建议: 学习金融基础知识:了解金融市场、投资策略和金融产品。这将帮助你理解量化金融的背景和应用场景。 学习统计学和数学:…...

什么是网络地址转换 (NAT)

网络地址转换(NAT)是更改源和目标 IP 地址和端口的过程,地址转换减少了对 IPv4 公共地址的需求,并隐藏了专用网络地址范围,该过程通常由路由器或防火墙完成。 NAT是如何工作的 NAT 允许单个设备(如路由器…...

系统架构设计师---事务管理、并发控制、数据库的备份与恢复

目录 事务管理 定义 事务的四个特性(ACID) 相关SQL语句 并发控制...

如何更好的维护自己的电脑?

我的笔记本电脑 我使用的华硕天选3是一款游戏本,搭载了英特尔酷睿i7-12700H处理器,16GB内存,512GB固态硬盘和NVIDIA GeForce RTX 3050显卡。屏幕尺寸为15.6英寸,分辨率为2560x1440。对于日常使用和工作学习娱乐都能满足要求。 日常…...

element+vue 表格行拖拽功能

解决方案 使用 sortable.js 步骤一&#xff1a; 安装 npm install vuedraggable步骤二&#xff1a;引入 import Sortable from sortablejs;步骤三&#xff1a; el-table 添加row-key属性&#xff0c;外层包一层 sortableDiv <div class"sortableDiv"> 拖…...

Python学习笔记_基础篇(三)_数据类型之列表

一.基本数据类型 整数&#xff1a;int 字符串&#xff1a;str(注&#xff1a;\t等于一个tab键) 布尔值&#xff1a; bool 列表&#xff1a;list &#xff08;元素的集合&#xff09; 列表用[] 元祖&#xff1a;tuple 元祖用&#xff08;&#xff09; 字典&#xff1a;dict 注&a…...

目标检测YOLO实战应用案例100讲-交通目标检测中传感器数据采集容错控制方法

目录 前言 交通传感器数据采集相关理论基础 2.1交通目标检测系统数据采集简介...

ElasticSearch 8.9.0 开发模式安装

ElasticSearch 8.9.0 开发模式安装 MacOS&#xff08;Apple芯片&#xff09;&#xff1a;https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.9.0-darwin-aarch64.tar.gz Linux&#xff1a;https://artifacts.elastic.co/downloads/elasticsearch/elasti…...

docker部署redis

这里写目录标题 1.安装Redis2.新建挂载文件夹3.配置redis4.创建redis容器&#xff0c;挂载启动命令连接测试 Docker停止、删除、重启、启动容器 1.安装Redis 通过docker search redis和docker pull redis下载redis镜像 2.新建挂载文件夹 新建data和conf两个文件夹&#xff0…...

ZooKeeper的应用场景(分布式锁、分布式队列)

7 分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源&#xff0c;那么访问这些资源的时候&#xff0c;往往需要通过一些互斥手段来防止彼此之间的干扰&#xff0c;以保证一致性&#xff0c;…...

seata 的部署和集成

文章目录 seata的部署和集成一、部署Seata的tc-server1.下载2.解压3.修改配置4.在nacos添加配置5.创建数据库表6.启动TC服务 二、微服务集成seata1.引入依赖2.修改配置文件 TODO三、TC服务的高可用和异地容灾1.模拟异地容灾的TC集群2.将事务组映射配置到nacos3.微服务读取nacos…...

C++入门基础(万字详解!!!)

文章目录 前言1.C关键字2.命名空间3.C的输入输出4.缺省参数4.1 全缺省4.2 半缺省 5.函数重载6. 引用6.1 引用的特性6.2 引用的使用场景6.3 引用和指针 7.内联函数7.1 特性 8.auto关键字8.1 注意事项 9. 基于范围的for循环9.1 使用条件 10.指针控制nullptr10.1 注意事项 11.总结…...

神经网络基础-神经网络补充概念-53-将batch norm拟合进神经网络

代码实现 import numpy as np import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, BatchNormalization, Activation from tensorflow.keras.optimizers import SGD# 生成随机数据 np.random.seed(0) X np.…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念&#xff1a; 1&#xff09;ZYNQ全称&#xff1a;ZYNQ7000 All Pgrammable SoC 2&#xff09;SoC:system on chips(片上系统)&#xff0c;对比集成电路的SoB&#xff08;system on board&#xff09; 3&#xff09;ARM&#xff1a;处理器…...

WebRTC调研

WebRTC是什么&#xff0c;为什么&#xff0c;如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...

Python学习(8) ----- Python的类与对象

Python 中的类&#xff08;Class&#xff09;与对象&#xff08;Object&#xff09;是面向对象编程&#xff08;OOP&#xff09;的核心。我们可以通过“类是模板&#xff0c;对象是实例”来理解它们的关系。 &#x1f9f1; 一句话理解&#xff1a; 类就像“图纸”&#xff0c;对…...