Linux最新运维Python大全_python运维,阿里P8亲自讲解

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

	- [2. 字符串](#2__137)
	- [3.字符串切片](#3_141)
	- [4. 列表](#4__183)
	- [5. 元组](#5__202)
	- [6. 字典](#6__212)
+ [二、判断语句](#_261)
+ - [1. if 判断](#1_if__262)
	- [2. while循环](#2_while_297)
	- [3. 三元运算符,也叫条件表达式](#3__396)
	- [4. for循环](#4_for_433)
+ [三、实战案例应用](#_472)
+ [四、文件对象](#_490)
+ - [1. 文件操作的基本步骤 -> 打开、读写、关闭](#1____491)
	- [2. 实操:在Linux服务器操作](#2_Linux_495)
	- [3. seek 和tell方法不常用,选修](#3_seek_tell_541)
	- [4. with](#4_with_563)
	- [练习:模拟cp操作](#cp_584)
+ [五、函数](#_625)
+ - [1. 定义参数](#1__675)
	- [2. 模块:](#2__722)
	- [练习:生成随机密码](#_743)
	- [3. shell 相关模块](#3_shell__773)
	- [4. 变量赋值](#4__837)
	- [5. 多元赋值](#5__857)
	- [6. 合法标识符](#6__863)
	- [7. 关键字](#7__870)
	- [练习:查看有哪些关键字](#_878)
	- [8. 内键](#8__888)
	- [9. 程序风格](#9__896)
	- [10. 编写程序的流程、步骤](#10__920)
	- [11. 序列类型操作符](#11__963)
	- [12. 内建函数(工厂函数)](#12__977)
	- [13. 字符串操作符](#13__1062)
	- [14. 检查标识符](#14__1070)
	- [15. 字符串格式化](#15__1102)
	- [16. format函数](#16_format_1136)
	- [练习:创建用户(Linux系统运行)](#Linux_1170)
	- [17. 原始字符串操作符](#17__1216)
	- [18. 字符串内建函数 (字符串操作)](#18___1246)
	- [19. 字符串方法](#19__1270)
	- [20. 创建及访问列表(列表list操作)](#20_list_1296)
	- [20. 列表内建函数](#20__1303)
	- [21. 单元素元组必须有逗号,否则不表示元组](#21__1341)
	- [练习: 用列表构建栈结构](#__1357)
	- [22. 字典和集合/文件系统](#22__1406)
	- [练习:通过key更新字典](#key_1439)
	- [23. 字典内建方法](#23__1472)
	- [24. Windows文本换行和Unix转换](#24_WindowsUnix_1490)
	- [练习:编写类进度条程序](#_1503)
	- [25. 集合](#25__1528)
	- [26. 集合类型操作符](#26__1554)
	- [27. 集合内建方法](#27__1585)
+ [六、简单模块](#_1636)
+ - [1. time 模块](#1_time__1638)
	- [2. datetime模块](#2_datetime_1650)
	- [3. 异常](#3__1680)
	- [异常处理 try - except 和try - finally](#_try__except__try__finally_1711)
	- [4. OS模块](#4_OS_1735)
	- [5. pickle存储器](#5_pickle_1791)
	- [练习:记账程序](#_1826)
+ [七、函数应用](#_1906)
+ - [1. 函数定义](#1__1907)
	- [2. 函数操作符](#2__1924)
	- [2. 参数组](#2__1941)
	- [练习:简单的加减法数学游戏](#_1980)
	- [4. lambda 匿名函数](#4_lambda__2045)
	- [5. filter 函数](#5_filter__2082)
	- [6. map 函数](#6_map__2116)
+ [八、函数高级应用](#_2139)
+ - [1. 变量作用域](#1__2141)
	- [2. 函数式编程](#2__2169)
	- [3. 偏函数](#3__2184)
	- [4. 递归函数](#4__2223)
	- [5. 生成器](#5__2266)
	- [生成器练习:每次获取文件10行数据](#10_2320)
	- [6. 内部函数](#6__2343)
	- [7. 闭包](#7__2351)
	- [闭包练习:-->创建通用的计数器](#_2359)
	- [8. 装饰器](#8__2394)
+ [九、什么是模块](#_2439)
+ - [1. 模块导入方法](#1__2465)
	- [2. hashlib 模块](#2_hashlib__2520)
	- [3. tarfile模块](#3_tarfile_2582)
	- [练习:备份程序](#_2606)
+ [十、OOP(面向对象编程)](#OOP_2702)
+ - [1. 基本概念](#1__2704)
	- [2. 创建类](#2__2720)
	- [2. 子类](#2__2746)
	- [3. 多重继承](#3__2795)
	- [3. 静态方法](#3__2816)
	- [4. 类方法](#4__2849)
+ [十一、 search 函数](#_search__2886)
+ - [1. findall](#1_findall_2894)
	- [2. finditer](#2_finditer_2900)
	- [3. split](#3_split_2905)
	- [4. sub](#4_sub_2911)
	- [5. compile](#5_compile_2920)
	- [练习:分析Apache访问日志](#Apache_2930)
+ [十二、 re模块(正则)](#_re_2993)
+ - [1. 匹配单个字符](#1__3000)
	- [2. 匹配一组字符](#2__3031)
	- [3. 其他元字符](#3__3054)
	- [4. 贪婪匹配](#4__3068)
+ [十三、socket模块](#socket_3104)
+ - [1. 套接字](#1__3106)
	- [2. 面向连接与无连接](#2__3111)
	- [3. Python字符串str和bytes类型转换](#3_Pythonstrbytes_3125)
	- [3. TCP](#3_TCP_3144)
	- [创建TCP服务器](#TCP_3148)
	- [创建TCP客户端](#TCP_3181)
	- [4. UDP](#4_UDP_3208)
	- [创建UDP服务器](#UDP_3212)
	- [创建UDP客户端](#UDP_3240)
	- [UPD服务器循环](#UPD_3263)
	- [UDP客户端循环](#UDP_3286)

运维Python大全

INSTALL PYTHONE3

安装依赖包

yum  -y install gcc gcc-c++  zlib-devel openssl-devel readline-devel libffi-devel sqlite-devel tcl-devel tk-devel  
wget https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz
tar zxf Python-3.8.13.tgz
cd Python-3.8.13
./configure --prefix=/usr/local  
make&&make install 

安装 Pycharm
Pycharm 设置中文

  1. baidu.com search Pycharm2017.3 汉化包
  2. 下载resource_cn.jar
  3. 把resource_cn.jar 拷贝到/root/bin/pycharm2017/lib中
  4. 如果经过第三步,仍然是英文界面,可以将lib目录中的resource_en.jar先剪切到别处
  5. 启动Pycharm,将报错
  6. 关闭pycharm后,把resource_en.jar再拷贝进去

Pycharm使用
加注释 : 选择行数 crtl +? 去掉注释:crtl+?
; 允许同一行但不推荐


Python syntax

例如;
分开写
a=3
b=4 推荐 这种写法

一行写(不推荐)
a=3;b=4 # 不推荐,可读性差
Python中 “字符串” 必须有引号,单双引号表示相同的含义,
如果不加引号,Python会把它当成一个名称,如果该名称没有定义将会报错

print('hello world')               #语句各项之间默认用空格分隔
print('hello','world')                
print('hello','world',sep='\*\*\*')  #语句各项之间也可以自定义分隔符
print('hello'+'world')                #字符串可以使用+进行拼接 
print('hello world',end='AAA')  #print语句默认最后加入一个回车\n,可以用end来自定义结束

username = input('请输入用户名:')
print('欢迎登录',username)
print('欢迎登录'+ username)

标题 合法的变量名,有三个要求
  1. 首字符必须是字母或下划线
  2. 其他字符可以是字母、数字或下划线
  3. 区分大小写
1. 推荐采用的全名方法

-变量名全部采用小写字母
-简短、有意义
-多个单词间用下划线分隔
-变量名用名词,函数名用谓词(动词+名词)
-类名采用驼峰形式

n=n+1 或者n+=1 n*=1 #等价于n=n*1
赋值语句自右向左运算,首先取出n的值,再计算n+1的值得到11,最后11赋值给n

2. 标准算术运算符 + - * / // % **

5/2 值为2.5
5//2 值为2 取整除 - 返回商的整数部分(向下取整)
5%2 值为1 求余,也被称作模运算,结果为1
2**3 值为8 2的3次方,乘方、幂运算

3. 比较运算符

< <= > >= == != <>
10<20<30 支持连续比较
10<20>15 相当于10<20 and 20>15 不推荐10<20>15这样的写

4. 逻辑运算符

and not or
and 两边为true
not 假变正
or 一个为正就为正

今天写到   print()    input()
  https://www.jianshu.com/      搜索“ python百例 "  从下面开始做  1-5 

 print('hello world!')
if 3>0:
 print("ok")
 print("yes")
x = 4
y = 5

print("hello world!")                    
print("hello","world!")             # 逗号自动添加默认的分隔符:空格
print("hello"+"world")                # 加号表示字符拼接
print("hello","world",sep="\*\*\*")  #单词间用 \*\*\* 分隔
print("#" \* 50)                          # \*号表示重复50遍
print("how are you?",end="")  # 默认print会打印回车,end=“ ” 表示不要回车

number = input("请输入数字: ")  # input用于获取键盘输入
print(number)
print(type(number))  # input获得的数据是字符型
print(number + 10)  # 报错,不能把字符和数字做运算
print(int(number) + 10)  # int可将字符串10转换成数字10
print(number + str(10))  # str将10转换为字符串后实现字符串拼接

################################################################################################

一 、python 数据类型

1. 数字

(1)int整数(有符号整数,没有小数点)
(2)bool布尔值 :Ture/false Ture=1 , false=0
(3)float浮点数:有小数点
(4)complex复数:共轭复数
对于整数,没有任何前缀Python默认识别为10进制数
以0o开头表示8进制,0b开头表示2进制 , 以0x开头表示16进制

2. 字符串

在引号中一系列字符,单双引号没有区别
三引号:三个连续的单引号或者双引号。它能够保存输入的格式,允许多行输入

3.字符串切片

下标和切片操作
第一个字符索引是0 ,最后一个字符的索引是-1
索引下标运算符[ ] 切片运算符[:] [::2] 表示步长值

py_str="Python"
len(py_str)        #查询长度
print("len(py\_str)")  #打印py\_str变量的长度
py_str[0]           #下标从0开始"Python"[0] 意义一样
print(py_str[0])   #可以截取字符串第一个字符
py_str[6]            #索引超出范围,报错
py_str[len(py_str) -1]   #字符串总长度减一,得到最后一个字符的下标
py_str[-1]       #也可以得到最后一个下标

py_str[2:4]   #表示下标包含,结束下标不包含
py_str[2:6]   得到 ‘thon’  
py_str[2:600]  #下标超出范围,切片不报错 ‘thon’
py_str[2:]     #结束下标不写,表示取到结尾
py_str[0:2]   得到‘py’  
py_str[:2]    得到 ‘py’  #开始下标不写,表示从开头开始
py_str[2:5]   得到  "tho"  #从2开始到5结束 5-2=3
py_str[::2]   得到   "pto"    #表示步长值是2
py_str[1::2]   得到  "yhn"   #从1开始步长值是2
py_str[::-1]   得到  "nohtyp"  #表示从右向左取步长值为-1 

py_str + " is cool"    #+号表示简单拼接
print(py_str + " is cool" )  得到 Python is cool   
"\*" \* 50         # \*号重复50次
print("\*" \* 50)  得到 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
print(py_str \* 3) 得到 PythonPythonPython



"t"  in py_str       
print("t"  in py_str )   得到 True
"to"  in py_str     
print("to"  in py_str  ) 得到 False 
print("to"  not in py_str  )   得到 True 


4. 列表

可以将列表当成普通的“数组" ,它能保存任意数量,任意类型的Python对象
列表: 它是一个容器,可以存放各种数据

列表

alist = [10 ,20 ,"li" ,"da",[1,2]]
print(len(alist))   得到5
alist[2:4]   
print(alist[2:4])  得到 ["li","da"]
alist[-1] =100     #列表项可以重新赋值
print(alist)   得到[10,20,"li","da","100"]
alist.append(200)    #向列表尾部增加一项
print(alist)   得到 [10,20,"li","da","100","200"]  

5. 元组

相当于是静态的列表,它的项目不可变

atuple =(10,20,"li","da")
atuple[-1]
print(atuple[-1])  得到  da
atuple[0] =100  #报错,元组不能修改

6. 字典

采用key:val 对存储的数据类型,key不能重复

adict={
 "name":"大锤","age":18}
adict["name"]          # 通过key取出value
print(adict["name"])  得到 大锤
18 in adict   得到 Flase  
"age" in adict  得到True
adict["sex"]="female"   #key不在字典中则增加一项 
print(adict)     得到{
 "name":"大锤","age":18,"sex":"female"}
adict["age"]=20            # age已是字典的key,修改age的值
print(adict)    得到{
 "name":"大锤","age":20,"sex":"female"}

—————————————————————————————

按数据类型比较 -----------------------重要、必须背下来
按存储模型分类
-标量类型 : 数值、字符串 标量:只有一种类型,不能存储其他类型。数字、字符串
-容器类型:列表、元组、字典 容器:能包含各种数据。列表、元组、字典

按更新模型分类
-可变类型:列表、字典
-不可变类型:数字、字符串、元组

按访问模型分类
-直接访问:数字
-顺序访问: 字符串、列表、元组
-映射访问:字典


例如:

alist = [10 ,20 ,"li" ,"da",[1,2]]   
blist = alist
blist.append(30)
print(alist) 得到[10 ,20 ,"li" ,"da",[1,2],30]
print(blist)  得到  [10 ,20 ,"li" ,"da",[1,2],30]   变得一样所以写程序容易出现bug

blist=alist.copy()
blist.append(30)
print(alist) 得到[10 ,20 ,"li" ,"da",[1,2]]
print(blist)  得到  [10 ,20 ,"li" ,"da",[1,2],30]  


二、判断语句

1. if 判断
words = "tom\njeff\njay\nmikes"
if "tom" in words :
    print("yes")
if "tom" not in words :
    print("not in")
else:
    print("tom in words")

if -0.0 : 
    print("0k")             #任何值为0的数字都是False,非0为True //这里不打印

if -0.01 :
    print("-0.01 is ok")    #这里可以打印True
   
if  ' ' :
    print("space is true")   #任何非空对象都是True ,空位False ,打印 
if  '' :
    print("空字符串是False")  #False不打印 
if None:
    print("None也是False,表示空")   #False不打印

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

alse,表示空") #False不打印



### 最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

### 资料预览

给大家整理的视频资料:

[外链图片转存中...(img-Ub7GkSMb-1715410975176)]

给大家整理的电子书资料:

  

[外链图片转存中...(img-pKP1bPDn-1715410975177)]



**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值