首页 > 代码库 > python自动化运维培训学习记录-day1

python自动化运维培训学习记录-day1

day01  基础一
 
一、概述
C  语言   代码编译得到机器码,在处理器上直接执行,每条指令控制CPU工作
其他语言  代码编译得到字节码,虚拟机执行字节码并转换成及其码再到处理器上执行
               JAVA虚拟机 JVM     python虚拟机 PVM
python版本 
      CPython   由C语言实现,官方版本
      JPython    由JAVA实现, 好处是 可以掉很多JAVA的库
      IronPython  由C#实现
      。。。。
 
2.7版本 过度版本,只支持到 2020年,会直接换到起码 3.4版本
 
2版本和3版本变化
如     2 中  print ‘123‘   到 3 就是  print(‘123‘)    print(‘11‘,‘12‘)
2中需要先申明字符编码才能写中文,而3中直接就可以
2与3某些库名更改了,大小写
Twisted不支持3
 
安装 装 3.5 和 2.7  双版本
配置环境变量   编辑 path   添加路径目录   如  c:\\python27  
 
linux下
代码中加入
#!/usr/bin/python      指明解释器,才能 ./*.py  执行
 
#!/usr/bin/env python    这样写法更好,避免 装的版本不在  /usr/bin   下的情况
 
工具pycharm  社区版 免费
pycharm    按住  ctrl+d 复制一行
tab  缩进    选中多行 按  tab 多行缩进,
shift+tab   反向缩进
按ctrl+某个方法,则可以看到该方法的源代码
 
变量的标示作用,有意义的名称  复杂的名称下划线的使用  son_of_twins_brother  或驼峰法 SonOfTwinsBrother
  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名
    [‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
user,passwd = ‘aaa‘,‘123‘
 
二、编码格式
ASCII     一个字节标示一个字符,一个字节8个bit     一个字节表示的最大数字  255 
              ASCII 码 127 个字符
       中文字符设计为存储在另一张表中,在 ASCII表中有一个位置指向,即如果访问中文字符则访问ASCII中某个位置,再连接到 中文字符的表
        如果链接位置出现交叉等情况,则不同国家语言字符出现乱码的情况
 
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536
则 原本1M的英文文档,就变成2M了
 
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
  python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill  2版本时)
 python 开发规范,每一行最多不超过 80个字符
 
三、用户输入
Python3.0中的写法
user_input = input("input your name:")
print("user input msg",user_input)
 
2.7版本写法
user_input = raw_input("input your name:")
 
user_input = input("your name:")       //需要输入变量或数字,直接输入字符串会报错
 
输入密码时不可见 使用  getpass 库
import getpass
password = getpass.getpass(‘input pass:‘)
 
四、模块使用
   os.system()   先返回执行的结果,再返回 成功的话 返回0  错误返回其他数字
       如  aa=os.system()      则 aa 只会保存  返回的状态数字
   aa = os.popen("df -h").read()     可以把命令执行的结果保存起来
  
模块存放的路径  sys.path
一般是在 Python2.7/site-packages
    或者 usr/lib/python2.7/dist-packages
sys.path  列表中  第一位是 当前目录,则查找模块的顺序时  按 sys.path 列表先找 当前目录,找到一个就不继续找了
 
tab补全代码
#!/usr/bin/env python # python startup file import sys
import readline
import rlcompleter
import atexit
import os
# tab completion 
readline.parse_and_bind(‘tab: complete‘)
# history file 
histfile = os.path.join(os.environ[‘HOME‘], ‘.pythonhistory‘)
try:
readline.read_history_file(histfile)
except IOError:
passatexit.register(readline.write_history_file, histfile)
del os, histfile, readline, rlcompleter
 
五、格式化字符串
站位符 %s   字符串
           %d   数字
           %f   浮点数
 
pip install readline     使用  pip 安装
#pip python安装后就会有,需要配置环境变量    pip也有版本的区别
  
六、基本的if 判断及循环语句
  if
  elif
 else
 
循环
for i in range(10):       将 range中的值 逐个取出来赋值给 i
 
break 和 continue
 
while
 
死循环
 while True:
    print ‘123‘
 
在线画流程图     processon.com

python自动化运维培训学习记录-day1