【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')  --- 后者效率更高
  从字典中取值,当键不存在时不想处理异常
    dics.get('key', 'not found')
  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]

 5)  序列化到文本文件

import pickle

with open ( 'shop.txt' , 'wb' ) as f :
   pickle.dump ( shop , f )

with open("shop.txt",'rb')  as obj:
    entry = pickle.load(obj)
print(entry)

 6) 指定占位符宽度   左对齐

print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))

print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))
原文地址:https://www.cnblogs.com/renyb/p/5513143.html