千锋教育-做有情怀、有良心、有品质的IT职业教育机构

400-811-9990
当前位置:千锋视频教程 > python视频教程  >  CrazyWing:Python自动化运维开发实战 二、Python基本用法

CrazyWing:Python自动化运维开发实战 二、Python基本用法

时间:2017-12-20 18:19:52     来源:千锋视频教程 作者:闫老师

  导语:

  Python编程博大精深,知识点众多,需要先整体上了解python的一些基本用法之后再去对每一个知识点细细研究,这样学习的速度会快很多。所以下面就先看一些python事先需要知道的基本知识。

Python视频教程

  交互模式编程:

  所谓交互就是跟用户也就是我们使用python的人交互,你给出指令或代码,python解释器给出结果。 调用解释器不经过脚本文件作为参数,显示以下提示:

  # python

  Python 2.7.10 (default, Jul 14 2015, 19:46:27)

  [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin

  Type "help", "copyright", "credits" or "license" for more information.

  >>>

  键入下列文字在Python提示符,然后按Enter键:

  >>> print "Hello, Python!" #python2.0

  >>> print ("Hello, Python!") #python3.0

  Hello, Python!

  强烈推荐使用ipython,其安装方式见:http://blog.51cto.com/fklinux/2046741

  脚本模式编程:

  所谓脚本编程,即把python指令或代码写入文本文件当中,再给这些指令指定一个命令解释器,这个文件文件就是python脚本了。

  比如:写入如下代码在一个test.py文件

  print "Hello, Python!"

  运行程序:

  # python test.py

  Hello, Python!

  另一种方式执行Python脚本,修改后的test.py文件:

  #!/usr/bin/python

  print "Hello, Python!"

  运行程序:

  # chmod +x test.py

  #./test.py

  Hello, Python!

  脚本模式编程中使用中文

  python默认使用ascii码,不支持中文,使用中文需要声明支持中文的字符集,一般是utf8,方式如下:

  #!/usr/bin/python

  #coding=utf8

  #encoding:utf-8

  #_*_ coding:utf-8 _*_

  print "你好中国!"

  上面3种方式都可以 为什么有这么多写法? python是按正则的方式检测你的字符集定义里面有没有他想要看到的东西,只要符合下面的正则即可:

  coding[:=]\s*([-\w.]+)

  [root@wing python]# cat a.py

  #!/usr/bin/env python

  #fdsf coding=utf8 fdaf 比如这里的fdsf fdaf是我随便乱写的 只要里面有coding utf8 等等就可以

  print "中国你好"

  注:python3中已经可以直接支持中文,不需要专门指定支持中文的字符集

  PYTHON标识符:

  1. 用来标识一个变量,函数,类,模块或其他对象的名称。

  2. 一个标识符开始以字母A到Z或a到z后跟零个或多个字母下划线(_)和数字(0〜9),Python标识符内不允许标点符号,如@、$、%等。

  3. Python区分大小写。

  标识符命名约定:

  • 类名以大写字母以及所有其它标识符以小写字母。

  • 开头单个前导下划线的标识符表示由该标识符约定的意思是私有的。

  • 开头两个前导下划线的标识符表示一个强烈的私有的标识符。

  • 如果标识符末尾还具有两个下划线结束时,该标识符是一个语言定义的特殊名称。

  避免用下划线作为变量名的开始:

  因为下划线对解释器有特殊意义,而且是内建标识符所使用的符号,建议程序员避免用下划线作为变量名的开始。

  一般来讲,变量名'_xxx' 被看作是“私有的”,在模块或类外不可以使用。

  当变量是私有的时候,用_xxx 来表示变量是很好的习惯。

  因为变量名__xxx__对 Python 来说有特殊含义,对于普通的变量应当避免这种命名风格

  保留字:

  保留字不可以被用作常量或变量,或任何其它标识符。所有Python关键字只包含小写字母。

  查询当前版本python中所有关键字:

  >>> import keyword #如果系统中没有这个模块,需要安装python-docs

  >>> keyword.kwlist

  ['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']

  判断是否为关键字:

  >>> keyword.iskeyword ('False')

  此时将返回True

  行和缩进:

  学习Python时,遇到的第一个需要注意的地方是,不使用括号来表示代码的类和函数定义块或流程控制。代码块是由行缩进,这是严格执行表示方式。 缩进位的数目是可变的,但是在块中的所有语句必须缩进相同的量。在这个例子中,两个功能块都很好使用:

  if True:

  print "True"

  else:

  print "False"

  在本例中的第二块将产生一个错误:

  if True:

  print "Answer"

  print "True"

  else:

  print "Answer"

  print "False"

  因此,在Python中所有的连续线缩进的空格数同样的会结成块。

  多行语句:

  Python语句通常用一个新行结束。 但是,Python允许使用续行字符()来表示,该行应该继续下去(跨行)。

  例如:

  total = (item_one +

  item_two +

  item_three)

  包含在[],{}或()括号内的陈述并不需要使用续行符。 例如:

  days = ['Monday', 'Tuesday', 'Wednesday',

  'Thursday', 'Friday']

  可以使用三引号"""或'''来打印多行语句,写什么格式就打印什么格式。 比如:

  print('''hello this

  is

  a

  test 多行语句''')

  打印结果如下:

  hello this

  is

  a

  test 多行语句

  继续符( \ ):

  Python 语句,一般使用换行分隔,也就是说一行一个语句。一行过长的语句可以使用反斜 杠( \ ) 分解成几行,比如:

  if (weather_is_hot == 1) and \

  (shark_warnings == 0):

  send_goto_beach_mesg_to_pager()

  引号:

  Python可以使用单引号('),双引号(“)和三('''或”””)引号,以表示字符串常量,只要是同一类型的引号开始和结束的字符串。三重引号可以用于跨越多个行的字符串。 例如:

  word = 'word'

  sentence = "This is a sentence."

  paragraph = """This is a paragraph. It is

  made up of multiple lines and sentences."""

  注释:

  单行注释: 一个井号(#),“#”号之后字符到本行结束都是注释,Python解释器会忽略它们。比如:

  #!/usr/bin/python

  # First comment

  print "Hello, Python!" # second comment

  运行结果:

  Hello, Python!

  使用三引号完成多行注释:

  '''

  comment1

  comment2

  ''''

  等待用户:

  方式1:Raw_input()

  程序的下面一行显示的提示,按回车键退出,等待用户按下回车键:

  #!/usr/bin/python

  raw_input("Press the enter key to exit.")

  一旦用户按下键时,程序结束。这是一个很好的技巧,保持一个交互式对话,直到用户完成应用程序运行。

  方式2:Input()

  上面两种等待用户输入的方式区别是:

  raw_input不解释用户输入

  input会解释用户的输入

  在一行中多个语句:

  分号( ; ) 允许在单行写入多条语句,不管语句是否启动一个新的代码块。下面是使用分号示例:

  import sys; x = 'foo'; sys.stdout.write(x + '')

  多个语句组作为套件:

  一组单独的语句, 在Python单一的代码块被称为序列。复杂的语句,如if, while, def, and class,那些需要一个标题行和套件。 标题行开始与声明(关键字),并终止与冒号(:),接着是一个或多个线构成该套件。

  例如:

  if expression :

  suite

  elif expression :

  suite

  else :

  suite

  命令行参数:

  很多程序可以运行,它们提供有关如何运行的一些基本信息。 Python中可以使用 -h 做到这一点:

  $ python -h

  usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...

  Options and arguments (and corresponding environment variables):

  -c cmd : program passed in as string (terminates option list)

  -d : debug output from parser (also PYTHONDEBUG=x)

  -E : ignore environment variables (such as PYTHONPATH)

  -h : print this help message and exit

  [ etc. ]

  你也可以设定你的脚本,它应该以这样的方式接受各种选项

  如果想对python脚本传参数,需要模块:sys

  参数个数:len(sys.argv)

  脚本名: sys.argv[0]

  参数1: sys.argv[1]

  参数2: sys.argv[2]

  #vim test.py

  import sys

  print “脚本名:”,sys.argv[0]

  for i in range(1,len(sys.argv)):

  print “参数”,i,sys.argv[i]

  #python test.py hello world

  脚本名:test.py

  参数 1 hello

  参数 2 world

  模块

  每一个 Python 脚本文件都可以被当成是一个模块。模块以磁盘文件的形式存在。 当一个模块变得过大,并且驱动了太多功能的话,就应该考虑拆一些代码出来另外建一个模块。 模块里的代码可以是一段直接执行的脚本,也可以是一堆类似库函数的代码,从而可以被别的模块导入(import)调用。模块可以包含直接运行的代码块、类定义、 函数定义或这几者的组合。 后面我们会有专门的模块讲解。

  千锋Python视频教程每天分享技术知识,更多免费视频教程关注千锋!

  • 北京天丰利校区(总部):北京市海淀区宝盛北里西区28号天丰利商城4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术学院广场服务楼2层、南区服务楼2层
    咨询电话:400-186-9990 010-82790226-801
    面授课程:全栈HTML5+培训、UI交互设计培训、PHP培训、JavaEE+云数据培训、大数据开发培训、VR/AR混合
    现实培训、Python培训、Linux云计算培训、软件测试培训、Android培训、iOS培训、好程序员
  • 深圳西部硅谷校区地址:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619
    深圳大学城校区地址:深圳市南山区留仙大道1201号大学城创客小镇16栋2楼、3楼
    咨询电话:0755-33582485-801(硅谷校区)0755-86660670-801(大学城校区)
    面授课程:全栈HTML5+培训、UI交互设计培训、PHP培训、JavaEE+云数据培训、Android培训、iOS培训
  • 上海校区地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-627-7899 021-56166283/56166279
    面授课程:全栈HTML5+培训、UI交互设计培训、JavaEE+云数据培训、Android课程培训、iOS课程培训、好程序员
  • 郑州校区地址:郑州市金水区纬五路21号河南教育学院综合楼(经纬中学楼)7/8层
    咨询电话:0371-55191750 400-186-9990
    面授课程:全栈HTML5+培训、UI交互设计培训、PHP培训、JavaEE+云数据培训、Android课程培训、iOS课程培训
  • 广州校区地址:广州市天河区元岗路310号智汇park创意园E座5层
    咨询电话:020-22119207 400-186-9990
    面授课程:全栈HTML5+培训、JavaEE+云数据培训、Android课程培训、iOS课程培训
  • 大连校区地址:辽宁省大连市甘井子区软件园路2号东软信息学院B5座一楼
    咨询电话:0411-39026086 400-186-9990
    面授课程:全栈HTML5+培训、JavaEE+云数据培训、UI交互设计培训、Android课程培训、iOS课程培训
  • 武汉校区地址:武汉市光谷大道61号智慧园21号楼2层
    咨询电话:027-65523826
    面授课程:全栈HTML5+培训、JavaEE+云数据培训、Android课程培训、iOS课程培训
  • 成都校区地址:成都市武侯区科华北路62号力宝大厦N(北楼)18楼
    咨询电话:028-83178771
    面授课程:全栈HTML5+培训、UI交互设计培训、PHP培训、JavaEE+云数据培训、Android课程培训、iOS课程培训
  • 西安校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:029-85260160
    面授课程:全栈HTML5+培训、JavaEE+云数据培训、Android课程培训
  • 杭州校区地址:浙江省杭州市江干区九堡旺田书画城A座4层
    咨询电话:0571-86893632 010-82790226-801
    面授课程:全栈HTML5+培训、JavaEE+云数据培训、Android课程培训、iOS课程培训
  • 青岛校区地址:青岛市市南区金坛路17号青岛职业技术学院南校区实训楼A4层
    咨询电话:0532-80910752/3 010-82790226-801
    面授课程:全栈HTML5+培训、UI交互设计培训、JavaEE+云数据培训、Android课程培训、iOS课程培训
  • 重庆校区地址:重庆市高新区科园一路2号大西洋国际12-1
    咨询电话:023-68883009
    面授课程:JavaEE+云数据课程培训
  • 长沙校区地址:湖南省长沙市岳麓区麓谷企业广场A2栋三单元306号
    咨询电话:0731-85513010/85513210
    面授课程:JavaEE+云数据课程培训
  • 哈尔滨校区地址:哈尔滨市松北区创新一路699号科技创新城19号楼五楼
    咨询电话:15663846969
    面授课程:全栈HTML5+培训
  • 千锋教育服务号

    了解千锋动态
    关注千锋教育服务号

  • 千锋互联服务号

    扫码匿名提建议
    直达CEO信箱