【Python自动化运维之路Day2】

1. 常量命名规则

    在Python中,会在变量命名上标明某变量是常量,通常采用全是大写的方式来标明,如:  

CONNECT= ‘127.0.0.1‘
PORT = ‘3306‘

2、Python编译

  python先把源码文件(.py)编译成字节码文件(.pyc)

      python3执行后,生成了一个__pycache__目录,pyc会在此目录下,python2执行可以看到直接生成了一个.pyc文件

  pyc  与py  时间戳不同,pyc才去重新编译

3  数据

  <1> str

  1、str1+str2    ----万恶的字符串拼接   + 号

2、

  str.replace(old, new[, max])  --字符串有 list没有此函数

  strip()     --去除空格

  split     ---分割字符串

   join    ---连接字符串

<2> list

1、list.append(obj):在列表末尾添加新的对象
2、list.count(obj):统计某个元素在列表中出现的次数
3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置
5、list.insert(index, obj):将对象插入列表
6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7、list.remove(obj):移除列表中某个值的第一个匹配项

8、list.reverse():反向列表中元素

9、list.sort([func]):对原列表进行排序  会改变原list。   3.x版本的  数字和字符串不能混合在一起排序

  PS:

list[-5:-1]       list[-1:-5]  倒序去切片不可以,虎头蛇尾:list[5,10]   包含第5个  但是没有第10个

del是全局:可以删除变量

del list[2];   del  list  ; del list[:]--删除多个元素

<3> tuple       ----  无法修改

  count   计数

  index

<4>dict     ----字典是无序的

dict[name]  与dict.get(‘age‘)  --- 后者效率更高

  dict[name]=‘alex‘

  del dict[name]

  dict.clear()     --清空字典

  setdefault   取回一个key,如果不存在可以指定一个value,如果没设值(Value),默认返回None

ps:

    dist  会自动去重

    for key in dict:

    print(key,dict[key])   ##  效率高

    dict.update(dict2)    dict2 -- 这是被添加dict到的词典

4 list的copy:

list.copy()    只复制第一级,子list是指针

完全copy :

import copy

copy.copy()

copy.depcopy()

#定义一个l3列表,里面嵌套两层列表
>>> l3 = [1,2,3,[‘a‘,‘b‘,‘c‘,[‘A‘,‘B‘,‘D‘]],4,5]
#l4从l3 copy
>>> l4 = l3.copy()
#列出l3元素
>>> l3
[1, 2, 3, [‘a‘, ‘b‘, ‘c‘, [‘A‘, ‘B‘, ‘D‘]], 4, 5]
#列出l4元素
>>> l4
[1, 2, 3, [‘a‘, ‘b‘, ‘c‘, [‘A‘, ‘B‘, ‘D‘]], 4, 5]
#修改l3嵌套的列表值
>>> l3[3][1] = ‘X‘
>>> l3[3][2] = ‘Y‘
>>> l3[3][3] = ‘Z‘
#而后查看l3和l4的元素,发现l3改了之后l4也跟着改了
>>> l3
[1, 2, 3, [‘a‘, ‘X‘, ‘Y‘, ‘Z‘], 4, 5]
>>> l4
[1, 2, 3, [‘a‘, ‘X‘, ‘Y‘, ‘Z‘], 4, 5]

#如果要深度拷贝,可以使用Python标准模块copy的deepcopy方法:
>>> import copy
>>> l3 = [1, 2, 3, [‘a‘, ‘X‘, ‘Y‘, ‘Z‘], 4, 5]
>>> l5 = copy.deepcopy(l3)
>>>
>>>
>>> l5
[1, 2, 3, [‘a‘, ‘X‘, ‘Y‘, ‘Z‘], 4, 5]
>>> l3
[1, 2, 3, [‘a‘, ‘X‘, ‘Y‘, ‘Z‘], 4, 5]
>>> l3[3][0] = ‘A‘
>>> l3
[1, 2, 3, [‘A‘, ‘X‘, ‘Y‘, ‘Z‘], 4, 5]
>>> l5
[1, 2, 3, [‘a‘, ‘X‘, ‘Y‘, ‘Z‘], 4, 5]
时间: 2025-01-03 22:34:21

【Python自动化运维之路Day2】的相关文章

python自动化运维之路~DAY7

python自动化运维之路~DAY7 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.客户端/服务器架构 C/S 架构是一种典型的两层架构,其全称是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据:另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信. C/S 架构也可以看做是胖客户端架构.因为客户端需要实现绝大多数的业务

python自动化运维之路~DAY10

python自动化运维之路~DAY10 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

Python自动化运维课程学习--Day2

本文为参加老男孩Python自动化运维课程第二天学习内容的总结. 大致内容如下: 1.python模块初识 2.python程序运行流程 3.python数据类型(只讲了numbers, bool, strings, bytes, list, tuple, dict, set) 4.python数据运算 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 --Python IDE: PyCharm

【Python自动化运维之路Day7】基础篇

今日目录: 模块 configparser xml shutil zipfile tarfile subprocess 面向对象(上) 一. 模块 上一期博客里列出了几个常用模块(os,hashlib,sys,re), 还有几个剩余的,这篇来继续往下走. 1. configparser模块 configparser模块是Python自带模块,主要用于处理特定的文件(ini文件),格式比较像MySQL的配置文件类型,就是文件中有多个section,每个section下面有多个配置项,如下: [my

【Python自动化运维之路Day9】Socket

socket也可以认为是套接字是一种源IP地址和目的IP地址以及源端口号和目的端口号的组合.网络化的应用程序在开始任何通讯之前都必须要创建套接字.就像电话的插口一样,没有它就没办法通讯. socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭) 我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我

python自动化运维之路4

装饰器 装饰器(decorator)是一种高级Python语法.装饰器可以对一个函数.方法或者类进行加工.在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果.相对于其它方式,装饰器语法简单,代码可读性高.因此,装饰器在Python项目中有广泛的应用. 装饰器的应用场景:饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大

python自动化运维之路~DAY1

刚学python,有大神给指点指点的吗? #!/usr/bin/env python#_*_coding:utf8_*_import getpass,syscount = 0match_info = False #用布尔值来标志用户密码是否匹配,默认是flasewhile count < 3: username = input("\033[32;1mAsk you for a username :\033[0m") with open("locked.txt"

【Python自动化运维之路Day10】网络篇之网络socketserver

课堂笔记: 上周回顾: socket: 1. 导入模块 2. 创建socket 3. send sendall, sendall本质上也是调用send 但是在内部做了一个while循环,拿到消息,循环发,知道消息完全发送 sendall: while True: 10 = send('adkflskjf023jlskdf') 10 = send('adkflskjf023jlskdf') ... send,一次不一定能完全发送 10 = send('adkflskjf023jlskdf') 所以

《Python自动化运维之路》 系统基础信息模块(一)

系统性能收集模块Psutil 目录: 系统性能信息模块psutil 系统性能信息模块psutil psutil能够轻松实现获取系统运行的进程和系统利用率包括(CPU,内存,磁盘 和网络)等.主要用于系统监控.对于系统维护来说是个不错的模块. 1.模块的安装 wget https://files.pythonhosted.org/packages/14/a2/8ac7dda36eac03950ec2668ab1b466314403031c83a95c5efc81d2acf163/psutil-5.