Python-变量&编译代码工具-B02

Python交互式环境升级与VSCode、PyCharm实战指南

编译代码的工具

交互式环境

所谓交互式环境,就是我们输入一行代码回车,代码马上会被执行,如果代码有产出结果,那么结果会被显示在窗口中。我们可以通过windons+R,再输入cmd,进入后输入命令python然后回车就可以进入到Python的交互式环境中。如下图:

 如果希望退出交互式环境,可以在交互式环境中输入quit()。

更好的交互式环境 - IPython

Python默认的交互式环境用户体验并不怎么好,我们可以用IPython来替换掉它,因为IPython提供了更为强大的编辑和交互功能。我们可以使用Python的包管理工具pip来安装IPython,如下所示。

pip install ipython

温馨提示:在使用上面的命令安装IPython之前,可以先通过pip config set global.index-url https://pypi.doubanio.com/simple命令将pip的下载源修改为国内的豆瓣网,否则下载安装的过程可能会非常的缓慢。

可以使用下面的命令启动IPython,进入交互式环境。

ipython

文本编辑器 - Visual Studio Code

Visual Studio Code(通常简称为VS Code)是一个由微软开发能够在Windows、 Linux和macOS等操作系统上运行的代码编辑神器。它支持语法高亮、自动补全、多点编辑、运行调试等一系列便捷功能,而且能够支持多种编程语言。如果大家要选择一款高级文本编辑工具,强烈建议使用VS Code。关于VS Code的下载、安装和使用,推荐大家阅读知乎上名为《VScode安装使用》的文章。

集成开发环境 - PyCharm

如果用Python开发商业项目,我们推荐大家使用更为专业的工具PyCharm 。

表1. PyCharm常用快捷键。

快捷键作用
ctrl + j显示可用的代码模板
ctrl + b查看函数、类、方法的定义
ctrl + alt + l格式化代码
alt + enter万能代码修复快捷键
ctrl + /注释/反注释代码
shift + shift万能搜索快捷键
ctrl + d / ctrl + y复制/删除一行代码
ctrl + shift + - / ctrl + shift + +折叠/展开所有代码
F2快速定位到错误代码
ctrl + alt + F7查看哪些地方用到了指定的函数、类、方法

代码注释

  1. 单行注释:以#和空格开头,可以注释掉从#开始后面一整行的内容。

  2. 多行注释:三个引号开头,三个引号结尾,通常用于添加多行说明性内容。(还可以选中所需注释的,Ctrl+/)

变量

变量的类型

  • 整型(int):Python中可以处理任意大小的整数。

  • 浮点型(float):浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e-2)。

  • 字符串型(str):字符串是以单引号或双引号括起来的任意文本,比如'hello'和'hello'

  • 布尔型(bool):布尔值只有TrueFalse两种值,要么是True,要么是False。 

注意:

所以与前有关的都不用浮点数计算。 

变量的命名规则

  • 规则1:变量名由字母、数字和下划线构成,数字不能开头。需要说明的是,这里说的字母指的是Unicode字符,Unicode称为万国码,囊括了世界上大部分的文字系统,这也就意味着中文、日文、希腊字母等都可以作为变量名中的字符,但是像!@#这些特殊字符是不能出现在变量名中的,而且我们强烈建议大家尽可能使用英文字母

  • 规则2:大小写敏感,简单的说就是大写的A和小写的a是两个不同的变量。

  • 规则3:变量名不要跟Python语言的关键字(有特殊含义的单词,后面会讲到)和保留字(如函数、模块等的名字)发生重名的冲突

运算符

算数运算符

Python中的算术运算符非常丰富,除了大家最为熟悉的加减乘除之外,还有整除运算符、求模(求余数)运算符和求幂运算符。

 赋值运算符

赋值运算符应该是最为常见的运算符,它的作用是将右边的值赋给左边的变量 。

 比较运算符和逻辑运算符

比较运算符有的地方也称为关系运算符,包括==!=<><=>=。逻辑运算符有三个,分别是andornotand字面意思是“而且”,所以and运算符会连接两个布尔值,如果两个布尔值都是True,那么运算的结果就是True;左右两边的布尔值有一个是False,最终的运算结果就是Falseor字面意思是“或者”,所以or运算符也会连接两个布尔值,如果两个布尔值有任意一个是True,那么最终的结果就是Truenot运算符的后面会跟上一个布尔值,它的作用是得到与该布尔值相反的值,也就是说,not后面的布尔值如果是True,运算结果就是False;而not后面的布尔值如果是False,运算结果就是True


gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ docker-compose build --build-arg SUPERSET_VERSION=3.1.0 [+] Building 1268.1s (11/12) =&gt; [internal] load local bake definitions 0.0s =&gt; =&gt; reading from stdin 1.61kB 0.0s =&gt; [superset internal] load build definition from Dockerfile.superset 0.0s =&gt; =&gt; transferring dockerfile: 1.59kB 0.0s =&gt; [superset internal] load metadata for docker.io/apache/superset:3.1.0 1.1s =&gt; [superset-init internal] load .dockerignore 0.0s =&gt; =&gt; transferring context: 2B 0.0s =&gt; [celery 1/8] FROM docker.io/apache/superset:3.1.0@sha256:afcd2f63479e29da06944087a29e7788f9ecd0250f4611e52aee1c844187e3eb 1230.4s =&gt; =&gt; resolve docker.io/apache/superset:3.1.0@sha256:afcd2f63479e29da06944087a29e7788f9ecd0250f4611e52aee1c844187e3eb 0.0s =&gt; =&gt; sha256:ac038528f2a19d94b806da89fd9f6cba03f66e1c54525f10d70a60ec7b02ce1d 75.56kB / 75.56kB 0.3s =&gt; =&gt; sha256:7dfa053011ee83eeaab82132d62e3f7d898b06cf664009193a99dc3877f41fcc 966B / 966B 0.2s =&gt; =&gt; sha256:91c9fb3f03331a96797d53f57cbd5a160d57d6608b065d23cd69e0682323c419 3.86MB / 3.86MB 3.1s =&gt; =&gt; sha256:ca43099a12615dfc7643ec769fa1efb4c755df753a0d109a85133d4caeb92eb8 49.26MB / 49.26MB 68.0s =&gt; =&gt; sha256:7b32b828ea5959602cdacacf44091cf5ed0f82470be3c19dff70aef17160e435 206.83MB / 206.83MB 60.5s =&gt; =&gt; sha256:204441eb6629cc6fb403dade61473c2ac08eef9bb37c79dee9a0efeadf4b0375 4.37kB / 4.37kB 0.2s =&gt; =&gt; sha256:e32d94962dc84161ccbbb752f90a730de9e0540a6fa00dfebf91a4a1ee979276 7.30kB / 7.30kB 1.2s =&gt; =&gt; sha256:d3482cd166eae37d16a1f0aee9afee70010e8d39da451c8f58c43715c38d12ed 102.97MB / 102.97MB 1218.2s =&gt; =&gt; sha256:fd059c39e967ba26555f9580bea3f791cf4639f183a5ed4a0c410bd8a372991e 91B / 91B 4.0s =&gt; =&gt; sha256:2b527dfdb0a9ecb9a5bf5c264aeb4ac254e0752886f187095f6960b933aab941 3.13MB / 3.13MB 5.3s =&gt; =&gt; sha256:93b25b5c998e137849343851763bbc686f369399894e766c37a55304b1f66cfb 244B / 244B 0.1s =&gt; =&gt; sha256:336c7f590cb97722bfee12f22e354df879feae9f28bfd5cebeaffccb3fb8fbf5 11.89MB / 11.89MB 22.3s =&gt; =&gt; sha256:51d1f07906b71fd60ac43c61035514996a8ad8dbfd39d4f570ac5446b064ee5d 3.51MB / 3.51MB 5.6s =&gt; =&gt; sha256:e1caac4eb9d2ec24aa3618e5992208321a92492aef5fef5eb9e470895f771c56 29.12MB / 29.12MB 29.0s =&gt; =&gt; extracting sha256:e1caac4eb9d2ec24aa3618e5992208321a92492aef5fef5eb9e470895f771c56 0.7s =&gt; =&gt; extracting sha256:51d1f07906b71fd60ac43c61035514996a8ad8dbfd39d4f570ac5446b064ee5d 0.1s =&gt; =&gt; extracting sha256:336c7f590cb97722bfee12f22e354df879feae9f28bfd5cebeaffccb3fb8fbf5 0.3s =&gt; =&gt; extracting sha256:93b25b5c998e137849343851763bbc686f369399894e766c37a55304b1f66cfb 0.0s =&gt; =&gt; extracting sha256:2b527dfdb0a9ecb9a5bf5c264aeb4ac254e0752886f187095f6960b933aab941 0.2s =&gt; =&gt; extracting sha256:fd059c39e967ba26555f9580bea3f791cf4639f183a5ed4a0c410bd8a372991e 0.0s =&gt; =&gt; extracting sha256:d3482cd166eae37d16a1f0aee9afee70010e8d39da451c8f58c43715c38d12ed 2.3s =&gt; =&gt; extracting sha256:e32d94962dc84161ccbbb752f90a730de9e0540a6fa00dfebf91a4a1ee979276 0.0s =&gt; =&gt; extracting sha256:204441eb6629cc6fb403dade61473c2ac08eef9bb37c79dee9a0efeadf4b0375 0.0s =&gt; =&gt; extracting sha256:7b32b828ea5959602cdacacf44091cf5ed0f82470be3c19dff70aef17160e435 6.9s =&gt; =&gt; extracting sha256:ca43099a12615dfc7643ec769fa1efb4c755df753a0d109a85133d4caeb92eb8 0.6s =&gt; =&gt; extracting sha256:91c9fb3f03331a96797d53f57cbd5a160d57d6608b065d23cd69e0682323c419 0.2s =&gt; =&gt; extracting sha256:ac038528f2a19d94b806da89fd9f6cba03f66e1c54525f10d70a60ec7b02ce1d 0.0ss =&gt; =&gt; extracting sha256:7dfa053011ee83eeaab82132d62e3f7d898b06cf664009193a99dc3877f41fcc 0.0s =&gt; [celery 2/8] RUN apt-get update &amp;&amp; apt-get install -y --no-install-recommends build-essential libssl-dev libffi-dev python3-dev 14.1s =&gt; [superset 3/8] RUN python -m ensurepip --upgrade || (wget https://bootstrap.pypa.io/get-pip.py -O /tmp/get-pip.py &amp;&amp; python /tmp/get-pip.py --user) 2.1ss =&gt; [celery 4/8] RUN python -m pip --version 0.5s =&gt; [superset 5/8] RUN python -m pip install --upgrade pip &amp;&amp; python -m pip install &quot;gevent&gt;=21.12.0&quot; psutil pymysql flask-appbuild 17.3s =&gt; [superset 6/8] RUN python -c &quot;import gevent; print(f&#39;✅ Successfully imported gevent {gevent.__version__}&#39;)&quot; 0.3s =&gt; ERROR [superset-init 7/8] RUN superset build 2.1s ------ &gt; [superset-init 7/8] RUN superset build: 1.566 /app/superset/config.py:39: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools&lt;81. 1.566 import pkg_resources 1.872 -------------------------------------------------------------------------------- 1.872 WARNING 1.872 -------------------------------------------------------------------------------- 1.872 A Default SECRET_KEY was detected, please use superset_config.py to override it. 1.872 Use a strong complex alphanumeric string and use a tool to help you generate 1.872 a sufficiently random sequence, ex: openssl rand -base64 42 1.872 -------------------------------------------------------------------------------- 1.872 -------------------------------------------------------------------------------- 1.872 Refusing to start due to insecure SECRET_KEY ------ Dockerfile.superset:47 -------------------- 45 | 46 | # Step 6: 构建前端资源 &mdash;&mdash; 关键步骤! 47 | &gt;&gt;&gt; RUN superset build 48 | 49 | # Step 7: 设置时区(可选) -------------------- target superset-init: failed to solve: process &quot;/bin/sh -c superset build&quot; did not complete successfully: exit code: 1 gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ # Dockerfile.superset ARG SUPERSET_VERSION=3.1.0 FROM apache/superset:${SUPERSET_VERSION} # Step 1: 切换为 root 用户(必须) USER root # Step 2: 安装系统级编译依赖 RUN apt-get update &amp;&amp; \ apt-get install -y --no-install-recommends \ build-essential \ libssl-dev \ libffi-dev \ python3-dev \ libev-dev \ libjpeg-dev \ zlib1g-dev \ &amp;&amp; rm -rf /var/lib/apt/lists/* # Step 3: 激活虚拟环境并重新安装 pip # 注意:官方镜像的 Python 虚拟环境位于 /app/.venv ENV VIRTUAL_ENV=/app/.venv ENV PATH=&quot;$VIRTUAL_ENV/bin:$PATH&quot; # 方法一:使用 ensurepip 强制重建 pip(推荐) RUN python -m ensurepip --upgrade || \ (wget https://bootstrap.pypa.io/get-pip.py -O /tmp/get-pip.py &amp;&amp; \ python /tmp/get-pip.py --user) # 验证 pip 是否可用 RUN python -m pip --version # Step 4: 安装所需 Python 包 RUN python -m pip install --upgrade pip &amp;&amp; \ python -m pip install \ &quot;gevent&gt;=21.12.0&quot; \ psutil \ pymysql \ flask-appbuilder \ pillow # Step 5: 验证 gevent 是否成功导入 RUN python -c &quot;import gevent; print(f&#39;✅ Successfully imported gevent {gevent.__version__}&#39;)&quot; # Step 6: 构建前端资源 &mdash;&mdash; 关键步骤! RUN superset build # Step 7: 设置时区(可选) ENV TZ=Asia/Shanghai # Step 8: 清理缓存(减小镜像体积) RUN pip cache purge # Step 9: 切回普通用户(安全) USER superset
最新发布
10-23
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值