python运维笔记第一节

python 基础

公开发布时间1991年

是一种面向对象、解释型计算机程序设计语言由Guido van Rossum于1989年发明第一个公开发行版发行于1991年。

 

优点

简单                                                    Python是一种代表简单主义思想的语言。

易学                                                    Python极其容易上手因为Python有极其简单的说明文档

速度快                                                Python的底层是用 C 语言写的很多标准库和第三方库也都是用                                                           C 写的运行速度非常快。

免费开源                                           Python是FLOSS自由/开放源码软件之一

轻松拿高薪

 

Python用来做什么

软件开发游戏、搜索、嵌入式、网站、C/S软件

系统管理脚本、运维自动化工具

 

编程要求

缩进统一

python中的语法格式没有结束符统一通过缩进进行确定不同的执行流程和语句同一流程和语句应保持缩进统一

 

在Linux系统中使用python首先确定python软件已经安装

[[email protected] ~]# rpm -qf`which python`

python-2.7.5-16.el7.x86_64

 

如果没有安装可执行以下命令进行安装

[[email protected] ~]# yum -yinstall python

 

win7x64位 python 2.7.10

链接http://pan.baidu.com/s/1sjuv5rn密码i5su

 

python源码包下载地址

https://www.python.org/

 

1、交互式解释器

[[email protected] ~]# python

Python 2.7.5 (default, Feb 112014, 07:46:25)

[GCC 4.8.2 20140120 (Red Hat4.8.2-13)] on linux2

Type "help","copyright", "credits" or "license" for moreinformation.

>>> print"Hello,world!"

Hello,world!

 

 

退出方法

>>> exit()

或者

>>> quit()

或者

Ctrl+D

 

2、算法的使用

基本运算符 +  - *  /

特殊运算符

//取整运算

%取余运算

**幂值运算

 

>>> 2 + 2

4

>>> 7 // 3                          #7整除3得2

2

>>> 7 % 3                          #7除以3余数为1

1

>>> 7 ** 3                          #7的3次幂343

343

 

注乘法运算的特例

>>> 1 * 10

10

>>> ‘1‘ * 10

‘1111111111‘

 

小数运算

如果参与运算的两个数中有一个为小数那么结果也是小数

>>> 3.0 * 2.0

6.0

>>> 3.0 / 2

1.5

>>> 3.0 - 2.0

1.0

 

3、变量的赋值

变量名可以包括字母数字和下划线变量不能以数字开头

与shell脚本不同python在引用变量时不需要加上$符号便可以直接引用

>>> x = 2

>>> x * 2

4    

 

对于字符串的赋值需要加上引号

>>> rm =ZhaoXiangJie

Traceback (most recentcall last):

  File "<stdin>", line 1, in<module>

NameError: name‘ZhaoXiangJie‘ is not defined

>>> rm =‘ZhaoXiangJie‘

>>> rm

‘ZhaoXiangJie‘

>>> RM=rm

>>> RM

‘ZhaoXiangJie‘

>>> RM=‘rm‘

>>> RM

‘rm‘

 

4、语句操作

>>> print 2 *2

4

 

5、获取用户输入

>>> x =input("x: ")

x: 33

>>> y =input("y: ")

y: 44

>>> print x *y

1452

 

6、函数

函数就像小程序一样可以用来实现特定的功能。Python中有很多函数用户也可以自定义函数

常见函数

pow       幂值运算

abs       绝对值运算

round   四舍五入

floor    返回值下舍整数

ceil         返回值上入整数

sqrt        平方根运算

int          取整运算

 

>>> pow(7,3)

343

>>> abs(-10)

10

 

对于不能直接调用的函数可以插入对应的模块进行调用

>>> import math                                    #插入math模块

>>> math.floor(32.9)                               #使用floor函数

32.0

>>> int(math.floor(32.9))

32

 

如果不希望每次调用函数的时候都写上模块的名称可以结合from进行实现

>>> from mathimport sqrt

>>> sqrt(9)

3.0

 

也可以通过变量来引用函数

>>> foo = math.sqrt

>>> foo(9)

3.0

 

如果模块的名称比较长使用起来不方便也可以通过以下方法进行设置

>>> from math importsqrt as a

>>> a(9)

3.0

 

同时导入多个模块

>>> import sys,os

 

7、字符串的引用

单引号和双引号都可以引用字符串使用时应避免出现混乱

>>>"Hello,world!"

‘Hello,world!‘

>>> ‘Hello,world!‘

‘Hello,world!‘

>>>‘"Hello,world!" she said‘

‘"Hello,world!" shesaid‘

 

针对以下这种情况显然使用单引号是不行的

>>> ‘I‘m a boy‘

  File "<stdin>", line 1

    ‘I‘m a boy‘

       ^

SyntaxError: invalid syntax

>>> "I‘m aboy"

"I‘m a boy"

 

或者通过 \ 对单引号进行转义

>>> ‘Let\‘s go‘

"Let‘s go"

 

如果要引用数值可以通过函数str 和 repr来实现

repr      返回值的字符串表示形式

str        将值转换为字符串

 

>>> police = 110

>>> print "报警请拨" + police                         #直接引用会报错

Traceback (most recent calllast):

  File"<stdin>", line 1, in <module>

TypeError: cannot concatenate‘str‘ and ‘int‘ objects

 

>>> print "报警请拨" + repr(police)

报警请拨110

 

>>> print "报警请拨" + str(police)

报警请拨110

 

长字符串的引用

如果需要写一个非常非常长的字符串它需要跨多行可以使用三个引号代替普通引号

>>> print ‘‘‘This isa very long string.

... It continues there

... And it‘s not over yet

... "Hello,world!"

... Still here.‘‘‘

This is a very long string.

It continues there

And it‘s not over yet

"Hello,world!"

Still here.

 

原始字符串的使用

原始字符串对于反斜线并不会特殊对待。原始字符串以r开头

例打印windows系统的C:\nowhere这样的路径

>>> print‘C:\nowhere‘

C:

owhere

当然可以通过转义符 “\”进行转义

>>> print‘C:\\nowhere‘

C:\nowhere

但是相对于一个更长的目录这个时候就很不方便

>>> print‘C:\\Program Files\\fonrd\\foo\\bar\\baz\\frozz\bozz‘

C:\ProgramFiles\fonrd\foo\bar\baz\frozozz

通过原始字符串的方式可以很轻松的实现

>>> print r‘C:\ProgramFiles\fonrd\foo\bar\baz\frozz\bozz‘

C:\ProgramFiles\fonrd\foo\bar\baz\frozz\bozz

 

8、input和raw_input 的比较

input会默认用户输入的是合法的Python表达式而raw_input会把所有的输入当做原始数据进行处理

例一使用input进行输入时输入的代码内容需加上引号才能进行执行

>>> name =input("What is your name? ")

What is your name? zxj

Traceback (most recent calllast):

  File "<stdin>", line 1, in<module>

  File "<string>", line 1, in<module>

NameError: name ‘zxj‘ is notdefined

>>> name =input("What is your name? ")

What is your name? ‘zxj‘

>>> print name

zxj

 

例二使用raw_input进行输入时输入的代码内容不需要加引号

>>> name =raw_input("What is your name? ")

What is your name? zxj

>>> print"Hello, "  +  name + "!"

Hello, zxj!

 

用Python编写脚本

首行加上python命令的执行路径可以使python脚本直接就能执行不需要通过python  脚本名这种方式也能执行当然前提是脚本要有x权限脚本的后缀名为 .py

脚本中#开头为注释行

 

[[email protected] ~]# vimhello.py

#!/usr/bin/python

name = raw_input ("Whatis your name ?")

print ‘Hello,‘ + name + ‘!‘

 

执行脚本文件

方法一python  + 脚本名

[[email protected] ~]# pythonhello.py

What is your name?RM

Hello, RM!

 

方法二给脚本加上x权限直接执行

[[email protected] ~]# chmod u+xhello.py

[[email protected] ~]# ./hello.py

What is your name?MK

Hello, MK!

 

在脚本中如果需要同时引用很多变量时可以通过%s 和%d 来实现

%s 用来引用字符串

%d 用来引用数字

 

实战

1、写一个统计人员信息的python脚本

#!/usr/bin/env python

name = raw_input(‘your name:‘)

age = raw_input(‘your age: ‘)

job = raw_input(‘your job: ‘)

 

print"***********************"

print "*****  your info *****"

print"***********************"

 

#print ‘\t‘"Name: "+ name

#print ‘\t‘"Age: " +age

#print ‘\t‘"Job: " +job

print ‘‘‘\tName: %s

\tAge: %s

\tJob: %s‘‘‘ % (name,age,job)

 

2、python中插入tab模块实现tab自动补全

脚本内容

[[email protected] ~]# vim tab.py

#!/usr/bin/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:

    pass

atexit.register(readline.write_history_file,histfile)

del os, histfile, readline,rlcompleter

 

插入tab模块

>>> import tab

>>> import sys

>>> sys.

sys.__class__(              sys.builtin_module_names    sys.last_type(

sys.__delattr__(            sys.byteorder               sys.last_value

 

查询python版本

>>> sys.version_info

sys.version_info(major=2,minor=7, micro=5, releaselevel=‘final‘, serial=0)

扩展

插入模块时出现以下报错信息原因tab模块的路径不正确

>>> import tab

Traceback (most recent calllast):

  File "<stdin>", line 1, in<module>

ImportError: No module namedtab

 

解决方法

>>>sys.path.append(‘/etc/sysconfig/network-scripts/‘)

Traceback (most recent calllast):

  File "<stdin>", line 1, in<module>

NameError: name ‘sys‘ is notdefined

>>> import sys

>>>sys.path.append(‘/etc/sysconfig/network-scripts/‘)

 

>>> sys.path

[‘‘,‘/usr/lib64/python27.zip‘, ‘/usr/lib64/python2.7‘,‘/usr/lib64/python2.7/plat-linux2‘, ‘/usr/lib64/python2.7/lib-tk‘,‘/usr/lib64/python2.7/lib-old‘, ‘/usr/lib64/python2.7/lib-dynload‘,‘/usr/lib64/python2.7/site-packages‘,‘/usr/lib64/python2.7/site-packages/gtk-2.0‘,‘/usr/lib/python2.7/site-packages‘, ‘/etc/sysconfig/network-script/‘,‘/etc/sysconfig/network-scripts/‘]

 

>>> import tab

>>> sys.

sys.__class__(              sys.builtin_module_names    sys.last_type(

sys.__delattr__(            sys.byteorder               sys.last_value

 

os.system可以直接调用shell中的命令

>>> import os

>>> os.system(‘uname-r‘)

3.10.0-229.el7.x86_64

 

 

 

 

 

时间: 2024-12-19 02:23:45

python运维笔记第一节的相关文章

python运维开发笔记4

1.函数如何被调用,通过return返回值来调用 2.生成器和return区别 yield 生成器返回对象,可以迭代 可以执行 glob模块 类似shell中的正则匹配 shlex模块  Popen 将命令参数直接分词 cmd = "ps ax -o pid,ppid,cmd" shlex.split(cmd) ['ps','ax','-o','pid,ppid,cmd'] ['mysql','-u','root','-p123','-e','show processlist'] p

python运维开发笔记5

diff -Nur Diff和patch是Linux标配的工具.在Windows上,也有移植的版本可以使用. 使用中注意: 1.保证文件名完全相同,避免只有大小写不同的文件存在. 2.Diff只能比较文本文件,二进制文件只能判断是否相同,不能记录差异.Diff根据文件的前几个字节判断文件是不是文本文件. 使用方法: 可以对单个文件或者整个目录树进行处理. 以最实用的方式举例: diff –Nur dir_old dir_new > dir.patch patch –p0 < dir.patch

Python运维编程

Python运维编程 作者:Danbo  2015-10-11 什么是Python,为什么要使用Python? 这个大家自行谷歌,不过看看知乎你就知道Python有多么强大:http://www.zhihu.com/question/25038841  #大蟒蛇是人形自走跑有木有啊! 首先你要知道Python很强大.Python是一个胶水语言(Glue Language).与Perl最大的不同是Python开发的哲学是:用一种方法,最好是只有一种方法来做一件事,而Perl是:总是有多种方法来做同

Python运维开发基础01-语法基础【转】

开篇导语 整个Python运维开发教学采用的是最新的3.5.2版,当遇到2.x和3.x版本的不同点时,会采取演示的方式,让同学们了解. 教学预计分为四大部分,Python开发基础,Python开发进阶,Python网页编程,Python项目实战 Python开发基础分为语法基础篇,文件基础篇,函数基础篇,模块基础篇 语法基础篇中,我着重希望训练同学的是作为开发应该具备的一种逻辑思路. 文件基础篇中,我们需要练习的是如何将数据永久性的存储在硬盘上,提供读,写. 函数基础篇中,我重点是要引导同学们构

重磅|0元学 Python运维开发,别再错过了

51reboot 运维开发又双叒叕的搞活动了,鉴于之前 51reboot 的活动反馈,每次活动结束后(或者已经结束了很长时间)还有人在问活动的事情.这一次小编先声明一下真的不想在此次活动结束后再听到类似下面的话了 我之前不知道有活动 (这个锅小编我背了) 这个活动还有吗? 我想了解一下这个活动 跟我说可以给我按活动价算吗? .......... 针对以上类似的询问小编在此统一回复大家: 好了,接下来进入今天的重中之重 本次活动:Python 运维开发——18天训练营 本课程为:网络班+面授班(北

51CTO持续更新《通哥的运维笔记》

<通哥的运维笔记>将持续在51CTO网站更新,希望大家多多关注.互相学习,后期,我将会退出<通哥的运维笔记>系列视频教程,希望带给大家最大的收获,帮助大家更好的学习.进步.<通哥的运维笔记>主要从linux系统管理.虚拟化.cloudstack云平台以及网络管理之CCNA.CCNP.CCIE,等等方面深入讲解.

Linux运维课程 第一阶段 重难点摘要(五)CISCO

Linux运维课程第一阶段重难点摘要(五)CISCO 一.高级路由管理 1.        路由:数据包从一台设备通过网络发往另一台不同网络中的设备,路由器不关心这些主机,它们只关心网络和通向每个网络的最佳路径.目的主机的IP地址用来保证数据包可以通过路由到达目的网络,而主机的MAC地址用于将数据包从路由器投递到目的主机. 静态路由:由管理员手动输入到路由表中的路由:不占用带宽,不会随着网络拓扑的变化而变化,缺少灵活性: 动态路由:通过动态学习得到路由:占用网络带宽和CPU资源:会随着网络拓扑的

Linux运维课程 第一阶段 重难点摘要(四)CISCO

Linux运维课程第一阶段重难点摘要(四)CISCO 一.路由器接口操作: 1.#show running-config  查看接口 2.#interface fastethernet 0/1      进入f0/1配置(0/1,0代表插槽1代表端口.若是s0/0/0,第一个0表示路由器本身) 3.#interface fastEthernet 0/1 #description tachingroute    接口描述 4.#do show running-config         do 

Python运维开发基础

Python基础知识分为以下几块 1.Python概述 2.基础语法 3.数据结构 4.Python进阶 5.实训案例 一.Python概述 1.Python简介 2.Hello World 3.搭建开发环境 4.习题 Python简介 尽管我是学计算机出身的,但是我对Python的认识是在毕业后.Python是我喜欢的语言,简洁,优美,容易使用.重要的一点是他是开源的项目. 官方网站 https://www.python.org 学习网站 http://www.okpython.com 对于简