news 2026/6/21 19:43:12

运维开发宝典037-Python环境安装和变量1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
运维开发宝典037-Python环境安装和变量1

大家好,我是云计算磊哥,从业20年的IT老鸟。IT架构师培训15年,总结了一套从入门到精通的全运维开发宝典手册。准备用300天时间写一套博文,手把手从安装软件讲起,从linux系统管理,shell脚本编程,mysql运维架构备份核心技术,Apache/nginx/tomcatWEB服务器管理,ansible自动化运维,redis集群哨兵,LVM/HAproxy/keepalived集群架构,rabbitMQ消息队列,docker&K8S集群资源管理,K8S自愈,K8S自动扩容,PYTHON编程基础,PYTHON自动化运维,从行业到产品,从过去到未来,从理论到操作,从视频到文档工具,100+篇系列文章一站式发布。从零基础入门到30k运维开发工程师岗位诸多就业问题。多方位全方面的给你讲清楚云计算这个行业该如何做。关注我。后续AI大模型开发课程更精彩。


一、Python 语言介绍

1、Python 发展历史

Python 是由 Guido van Rossum (吉多·范罗苏姆)在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。Python 本身也是由诸多其他语言发展而来的,这包括 ABC、lisp、perl、C、C++、Unix shell 和其他的脚本语言等等。像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。现在 Python 是由一个核心开发团队在维护,Guido van Rossum(吉多·范罗苏姆) 仍然占据着至关重要的作用,指导其进展。

2、Python 简介

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。

3、Python 特点

  • **1.易于学习:**Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  • **2.易于阅读:**Python代码定义的更清晰。
  • **3.易于维护:**Python的成功在于它的源代码是相当容易维护的。
  • **4.一个广泛的标准库:**Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
  • **5.互动模式:**互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
  • **6.可移植:**基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
  • **7.可扩展:**如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  • **8.数据库:**Python提供所有主要的商业数据库的接口。
  • **9.GUI编程:**Python支持GUI可以创建和移植到许多系统调用。
  • 10.可嵌入:你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

4、Python 的能力

2026年最新的TIOBE排行榜显示,Python 排行在第1位。

编程语言TIOBE排行榜

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维自动化测试大数据分析、爬虫、Web 等。

二、Linux 编译安装Python3

1、源码安装

1、安装依赖软件包
yum-yinstallgcc gcc-c++ zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel# python3.10版本安装

前提条件是:你的系统已经安装了开发工具包。

2、下载
curl-opython3.10.5.tgz https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz // 或者wgethttps://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz
3、解压安装
tar-xfPython-3.10.5.tgzcdPython-3.10.5/

进入目录后,执行下面的命令

修改文件Python-3.10.5/Modules/Setup.dist, 去掉如下几行的注释 :

readline readline.c-lreadline-ltermcapSSL=/usr/local/ssl _ssl _ssl.c\-DUSE_SSL-I$(SSL)/include -I$(SSL)/include/openssl\-L$(SSL)/lib-lssl-lcrypto

或者在shell命令提示符下执行如下命令:

sed-ri's/^#readline/readline/'Modules/Setup.distsed-ri's/^#(SSL=)/\1/'Modules/Setup.distsed-ri's/^#(_ssl)/\1/'Modules/Setup.distsed-ri's/^#([\t]*-DUSE)/\1/'Modules/Setup.distsed-ri's/^#([\t]*-L\$\(SSL\))/\1/'Modules/Setup.dist

开始编译安装

./configure --enable-shared--prefix=/usr/local/python3make-j2&&makeinstall

–enable-shared 指定安装共享库,共享库在使用其他需调用python的软件时会用到,比如使用mod_wgsi连接Apache与python时需要。

4、配置共享库文件

为所有用户设置共享库目录

用 vim 编辑器打开配置文件/etc/profile.d/python3.sh

vim/etc/profile.d/python3.sh

在文件末尾写上如下内容:

# python3.10 共享库目录exportPATH=$PATH:/usr/local/python3/bin

编辑文件/etc/ld.so.conf.d/python3.conf,并且添加如下内容:

/usr/local/python3/lib

保存退出文件后, 执行如下命令 加载配置信息使其生效

ldconfig

执行如下命令,使环境变量生效

source/etc/profile.d/python3.sh
5、测试python3
$ python3 Python3.10.3(default,Dec172017,04:11:01)[GCC4.8.520150623(Red Hat4.8.5-11)]on linux Type"help","copyright","credits"or"license"formore information.>>>print('qf')qf>>>exit()

输入exit()即可退出 python3

6、测试 pip3

一般情况下你不需要执行下面的安装命令。

[root@localhost ~]# pip3 -Vpip9.0.3 from /usr/local/lib/python3.10/site-packages(python3.10)

假如上面显示的含有 python3.10 就没问题了,说名 pip3 安装的模块会安装到上面显示的目录下

2、 配置使用国内源安装第三方模块

1、创建配置文件

配置 pip3 使用国内源

mkdir~/.pipvi~/.pip/pip.conf# Windows 下使用 pip.ini(1):在windows文件管理器中,输入 %APPDATA%(2):会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件

写入如下内容:

[global]timeout=6000index-url=https://mirrors.aliyun.com/pypi/simple

豆瓣源: https://pypi.douban.com/simple/

阿里源: https://mirrors.aliyun.com/pypi/simple

清华: https://pypi.tuna.tsinghua.edu.cn/simple

阿里云: http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学: http://pypi.hustunique.com/

山东理工大学: http://pypi.sdutlinux.org/

示例:
比如安装一个执行远程主机命令的模块

[root@localhost ~]# pip3 install gnureadlineLookinginindexes: https://mirrors.aliyun.com/pypi/simple Collecting gnureadline Downloading https://mirrors.aliyun.com/pypi/packages/2b/36/60b53a1793af9a60539b5ee6fed4f3702280bd5a88ab41600a51510002a1/gnureadline-8.0.0-cp37-cp37m-manylinux1_x86_64.whl(283kB)100%|████████████████████████████████|286kB 387kB/s Installing collected packages: gnureadline Successfully installed gnureadline-8.0.0 You are using pip version19.0.3, however version19.3.1 is available. You should consider upgrading via the'pip install --upgrade pip'command.# 最后两行为警告内容,无需理会

三、Windows 10 安装 Python3 和 pip3

1、下载Python3

下载地址:https://www.python.org/downloads/windows/

注意:window版本有32位和64位,这里我下载的是64位。如果自定义安装报错,使用默认安装install now即可

2、安装Python3

1、下载好安装包后双击安装默认下一步。只需要注意一件事。

勾选 自动添加到path环境变量中。

补充内容

一,我们操作代码的方式 终端 文件
终端
字符串需要用引号

文件
文件名以.py结尾
解释器申明
终端执行文件

输入命令的执行流程
属于代码–>解释器—>语法词法分析

在 /root 目录下创建 hello.py 文件,内容如下:

print("hello,world")

执行 hello.py 文件,即:python /root/hello.py

二、解释器

上一步中执行 python3 /root/hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。

如果想要类似于执行shell脚本一样执行python脚本,例:./hello.py,那么就需要在 hello.py 文件的头部指定解释器,如下:

#!/usr/bin/env python3print("hello,world")

如此一来,执行: ./hello.py即可。

ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py

#!/usr/bin/env python3print("hello,世界")

三、内容编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill) ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。 显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536, 注:此处说的的是最少2个字节,可能更多 UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存... 所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话: 报错:ascii码无法表示中文

四、注释

  • Shell 注释方法:
    • 单行注释: # 被注释内容
    • 多行注释: <<! 备注释内容 !
  • Python 注释方法
    • 单行注释:# 被注释内容
    • 多行注释:""" 被注释内容 """

五、执行脚本传入参数

Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

  • Python内部提供的模块
  • 业内开源的模块
  • 程序员自己开发的模块(温馨提示,python的模块可以是c语言等)

Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数

#!/usr/bin/env python# -*- coding: utf-8 -*-importsysprint(sys.argv)

六、 pyc 文件

执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。

https://www.jianshu.com/p/f0c6130f7b13

ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。

七、输入

#!/usr/bin/env python # -*- coding: utf-8 -*- # 将用户输入的内容赋值给 name 变量 name = input("请输入用户名:") # 打印输入的内容 print(name)

四、变量

1、变量的声明

python语言是动态语言

  • 变量不需要事先声明
  • 变量的类型不需要声明

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python 中,变量就是变量,它没有类型,我们所说的类型是变量所指的内存中对象的类型。

等号(=)用来给变量赋值。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是其指向的具体的值。

a = 1 a = '千锋'

2、变量命名规则

可以包含以下字符

  • 大小写字母(a-z,A-Z)

  • 变量名区分大小写; a 和 A 是不同的变量

  • 数字(0-9)

  • 下划线(_)

    不可以以数字开头

3、变量命名潜规则

  • 不要以单下划线和双下划线开头;如:_user或 __user
  • 变量命名要易读;如:user_name,而不是username
  • 不用使用标准库中(内置)的模块名或者第三方的模块名
  • 不要用这些 Python 内置的关键字:
>>>importkeyword>>>keyword.kwlist['False','None','True','and','as','assert','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']>上面打印出来的数据在 Python 中被称为列表, 列表是 Python中一种数据结构。关于数据结构,后面的章节会详细说明。>列表的都是 Python3 中的关键字。#可以使用一下方法验证,返回 True 就是 Python 的关键字>>>keyword.iskeyword('del')True>>>

4、变量赋值

python 中使用等号=对变量进行赋值,。

等号左边被称为变量名,等号右边称为变量的值,确切的说是对象

n=5

5、Python 中的变量是什么

在 python 中究竟该如何正确理解变量的赋值过程呢?

s='hello'

以上的变量赋值,应该说成把变量分配给对象更合理。

hello这个字符串对象会在内存中先被创建,之后再把变量名s分配给这个对象。

所以要理解 Python 中的变量赋值,应该始终先看等号右边。

对象是在右边先被创建或者被获取,在此之后左边的变量名才会被绑定到对象上,这就像为对象贴上了标签。

变量名本质上是对象的标签或者说是对象的名字,当然一个对象可以有多个标签或者名字。
比如: 张三 和 小张 指的都是同一个人

请看下面的代码示例:

a=1b=a a=2print(b)# b 会是 ?

上面的b = a我们称它为传递引用,此时对象会拥有两个名称(标签) ,分别是ab

6、变量的多元赋值

在 Python3 中你可以这样给变量赋值

In[2]:x,y,z=1,2,3In[3]:x Out[3]:1In[4]:y Out[4]:2In[5]:z Out[5]:3

当然也可以这样

In[10]:a,b,c='abc'In[11]:a Out[11]:'a'In[12]:b Out[12]:'b'In[13]:c Out[13]:'c'

假如你需要对一个序列类型中的数据进行一一解开赋值,那就需要等号左边的变量名和序列类型数据中的元素个数相同。

这种多元赋值方式在 Python 中也可以称为元组解包。

7、Python 中对象(变量的值)都有三个特性

# 唯一标识,是对象在内存中的整数表示形式,在 CPython 中可以理解为# 内存地址# 可以用 id 这个函数查看id(10)# 直接给一个对象id(n)# 给你变量名# 类型, 对象都有不同的类型,用 type 这个函数查看type(10)type(n)# 值,对象本身10

五、运算符

1、算数运算

#!/usr/bin/python3a=21b=10c=0c=a+bprint("c 的值为:",c)c=a-bprint("c 的值为:",c)c=a*bprint("c 的值为:",c)c=a/bprint("c 的值为:",c)c=a%bprint("c 的值为:",c)# 修改变量 a 、b 、ca=2b=3c=a**bprint("c 的值为:",c)a=10b=5c=a//bprint("c 的值为:",c)
c 的值为:31c 的值为:11c 的值为:210c 的值为:2.1c 的值为:1c 的值为:8c 的值为:2

2、比较运算赋值运算

#!/usr/bin/python3a=21b=10c=0if(a==b):print("a 等于 b")else:print("a 不等于 b")if(a!=b):print("a 不等于 b")else:print("a 等于 b")if(a<b):print("a 小于 b")else:print("a 大于等于 b")if(a>b):print("a 大于 b")else:print("小于等于 b")# 修改变量 a 和 b 的值a=5;b=20;if(a<=b):print("a 小于等于 b")else:print("a 大于 b")if(b>=a):print("b 大于等于 a")else:print("b 小于 a")
1-a 不等于 b2-a 不等于 b3-a 大于等于 b4-a 大于 b5-a 小于等于 b6-b 大于等于 a

4、逻辑运算

#!/usr/bin/python3a=10b=20if(aandb):print("变量 a 和 b 都为 true")else:print("变量 a 和 b 有一个不为 true")if(aorb):print("变量 a 和 b 都为 true,或其中一个变量为 true")else:print("变量 a 和 b 都不为 true")# 修改变量 a 的值a=0if(aandb):print("变量 a 和 b 都为 true")else:print("变量 a 和 b 有一个不为 true")if(aorb):print("变量 a 和 b 都为 true,或其中一个变量为 true")else:print("变量 a 和 b 都不为 true")ifnot(aandb):print("变量 a 和 b 都为 false,或其中一个变量为 false")else:print("变量 a 和 b 都为 true")
1-变量 a 和 b 都为 true2-变量 a 和 b 都为 true,或其中一个变量为 true3-变量 a 和 b 有一个不为 true4-变量 a 和 b 都为 true,或其中一个变量为 true5-变量 a 和 b 都为 false,或其中一个变量为 false

5、成员运算

#!/usr/bin/python3a=10b=20list=[1,2,3,4,5];if(ainlist):print("变量 a 在给定的列表中 list 中")else:print("变量 a 不在给定的列表中 list 中")if(bnotinlist):print("变量 b 不在给定的列表中 list 中")else:print("变量 b 在给定的列表中 list 中")# 修改变量 a 的值a=2if(ainlist):print("变量 a 在给定的列表中 list 中")else:print("变量 a 不在给定的列表中 list 中")
1-变量 a 不在给定的列表中list2-变量 b 不在给定的列表中list3-变量 a 在给定的列表中list

六、流程控制语句

1、判断

基本的语法格式:

#if 条件语句: # 注意这里必须以英文的冒号结束# 条件语句为真时,执行的语句n=input("输入数字>>:")n=int(n)# input 接收到的数据,都是字符串类型ifn==5:print('相等')n=input("输入数字>>:")n=int(n)ifn==5:print('相等')else:# else 后边必须有英文的冒号print('No')#_*_ coding:utf-8 _*_n=input("输入数字>>:")# 必须输入数字来测试ifnotn:# 如果为空print("空值")# 输出 空值else:#否则n=int(n)# n 转化为整型ifn==5:# 如果等于5print('ok')# 输出okelifn>5:# 如果 大于5print('大了')# 输出大了else:# 否则print('小了')#输出小了

2、嵌套

n=input("输入数字>>:")ifn.isdigit():f_n=int(n)iff_n==5:print('ok')eliff_n>5:print('大了')else:print('小了')else:print('请输入数字')

3、循环

whileTrue:n=input("输入数字>>:")n=int(n)ifn==5:print('相等')breakelifn>5:print('大了')else:print('小了')

4、迭代

  • 什么是迭代

​ 迭代 是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。

​ 每一次对过程的重复被称为一次“迭代”。

  • for 循环(英语:for loop)

​ 是一种编程语言的迭代陈述,能够让程式码反复的执行。

​ 它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器。

​ 这使得for循环能够知道在迭代过程中的执行顺序,记住上次被循环元素的位置。

foriin'hello world':print(i)

range(n)

产生一个可被循环的整数序列,默认序列的元素从 零 开始

产生的元素数量是n

foriinrange(5):print(i)

break 和 continue

foriinrange(0,10):print(i)ifi<3:inp_num=int(input(">>:").strip())# inp_num = int(inp_num)ifinp_num==15:print('You get it')breakelifinp_num>15:print("高了")else:print("低了")else:print("Game over")breakforiinrange(2,10,2):print("循环到",i)ifi==4:continueprint(i)ifi==6:break

range(开始索引号:结束索引号:步长)
其道理和切片一样

6、作业

1、使用while循环输出 1 2 3 4 5 6 8 9 10

2、求1-100的所有数的和

3、输出 1-100 内的所有奇数

4、输出 1-100 内的所有偶数

5、求1-2+3-4+5 … 99的所有数的和

6、用户登陆(三次机会重试)

7、猜数游戏

要求:

  1. 提示用户输入一个数字 inp = input()
  2. 判断用户输入的值是否等于 18 == inp
  3. 允许用户尝试 3 次
  4. 假如 3 次机会都没有猜对,就再次提示用户是否继续
  5. 用户输出y,就再给 3 次机会。 输入n则退出游戏

打印九九乘法表 shell python

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 19:40:39

BetterNCM安装器:5分钟让网易云音乐焕然一新的终极指南

BetterNCM安装器&#xff1a;5分钟让网易云音乐焕然一新的终极指南 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 厌倦了网易云音乐千篇一律的界面&#xff1f;想要更多个性化功能和主…

作者头像 李华
网站建设 2026/6/21 19:35:33

StarCore DSP栈内存测量实战:水印法与仿真器监控法详解

1. 项目概述与核心价值在嵌入式系统开发&#xff0c;尤其是基于StarCore这类高性能DSP的实时信号处理应用中&#xff0c;栈内存管理是决定系统长期稳定性的“生命线”。栈溢出不像堆内存泄漏那样可能潜伏一段时间&#xff0c;它一旦发生&#xff0c;往往直接导致程序跑飞、数据…

作者头像 李华
网站建设 2026/6/21 19:31:40

D2DX完整指南:让经典暗黑破坏神2在现代PC上重获新生

D2DX完整指南&#xff1a;让经典暗黑破坏神2在现代PC上重获新生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否曾在现…

作者头像 李华
网站建设 2026/6/21 19:29:04

零基础部署OpenClaw:本地AI工作流搭建实战指南

1. 这个“8块钱月费”的AI助手&#xff0c;到底在帮你省什么&#xff1f; 你刷到过这个标题&#xff1a;“月费8块的AI私人助手&#xff0c;不会写代码也能搭&#xff08;OpenClaw 零基础教程&#xff09;”&#xff0c;第一反应可能是——又一个割韭菜的噱头&#xff1f;毕竟…

作者头像 李华
网站建设 2026/6/21 19:28:00

写论文如何又快又好?导师力荐这几个AI写作辅助软件

想写论文又快又好&#xff0c;关键是用对 AI 工具、走对流程——资深教授普遍推荐&#xff1a;千笔AI&#xff08;中文全流程首选&#xff09; 豆包学术版&#xff08;轻量高效&#xff09; DeepSeek 学术版&#xff08;理工 / 长文本&#xff09; Grammarly Academic&#xff…

作者头像 李华