zoukankan      html  css  js  c++  java
  • 核心Python知识(一)

    使用解释的动态类型语言创建美丽的代码

    Python是一种解释的动态类型语言。Python使用缩进来创建可读,甚至漂亮的代码。使用Python的大量内置库,它可以处理许多作业而无需其他库,从而允许您几乎立即编写有用的代码。但是,Python广泛的外部库网络可以根据您的需求轻松添加功能。

     

    介绍

    Python是一种解释动态类型的语言。Python使用缩进来创建可读,甚至漂亮的代码。Python附带了如此多的库,您可以处理许多作业而无需其他库。Python适合你,并尽量不让你惊讶,这意味着你几乎可以立即编写有用的代码。

    Python由Guido van Rossum于1990年创建。虽然Python被用作语言和社区的图腾,但该名称实际上源自Monty Python,并且对Monty Python skits的引用在代码示例和库名称中很常见。还有其他几种流行的Python实现,包括PyPy(JIT编译器),Jython(JVM集成)和IronPython(.NET CLR集成)。

    Python 2.x与Python 3.x

    Python现在有两种基本版本 - Python 2.x(目前为2.7)和Python 3.x(目前为3.7)。这是一个重要的区别 - 一种方式的编码不能兼容运行。但是,大多数代码都是可以互换的。以下是一些主要差异:

     

    有一个名为2to3.py的实用程序可用于将Python 2.x代码转换为3.x,而2.x中的“-3”命令行开关可以为自动转换器无法处理的情况启用其他弃用警告。python-modernize和'six'支持包等第三方工具可以轻松地为支持2.x和3.x的库和应用程序定位两个变体的大型公共子集。

     

    语言特色

    Guido对编程的意图...

    Python中的缩进规则。没有花括号,没有开始和结束关键字,在行的末尾不需要分号 - 将代码组织成块,函数或类的唯一方法是缩进。如果某些东西是缩进的,它会形成一个块,所有内容都缩进到同一级别,直到文件末尾或缩进较少的行。

    虽然有几种缩进选项,但通用标准是每级4个空格:

     

    def function_block():
      # first block stuff
      # second block within first block:
          # second block stuff
          for x in an_iterator:
              # this is the block for the for loop
              print x
          # back out to this level ends the for loop
      # and this ends the second block...
    # more first block stuff
    def another_function_block():
    

      

    评论和Docstrings

    要将评论从当前位置标记到行尾,请使用井号“#”。

    # this is a comment on a line by itself
    x = 3    # this is a partial line comment after some code
    

      

    对于更长的注释和更完整的文档,尤其是在模块或函数或类的开头,请使用三引号字符串。您可以使用3个单引号或3个双引号。三引号字符串可以覆盖多行,并忽略Python程序中任何未分配的字符串。这些字符串通常用于模块,函数,类和方法的文档。按照惯例,“docstring”是其封闭范围中的第一个语句。遵循此约定允许使用pydoc模块自动生成文档。

    通常,从试图理解代码本身的开发人员的角度来看,您使用一行注释来评论代码。Docstrings更适合用于记录代码的作用,更多的是从将要使用代码的人的角度来看

    Python是您可以深入研究的一种语言,所以让我们深入研究这个示例Python脚本:

    #! /usr/bin/env python
    """ An example Python script
       Note that triple quotes allow multiline strings
    """
    # single line comments are indicated with a "#"
    import sys         # loads the sys (system) library
    def main_function(parameter):
       """ This is the docstring for the function """
       print " here is where we do stuff with the parameter"
                   print parameter
       return a_result     # this could also be multiples
    if __name__ == "__main__":
       """ this will only be true if the script is called 
           as the main program """
       # command line parameters are numbered from 0 
       # sys.argv[0] is the script name
       param = sys.argv[1]    # first param after script name
       # the line below calls the main_function and 
       # puts the result into function_result
       function_result = main_function(param)
    

      

    分支,循环和异常

    分支

    Python有一组非常简单的if / else语句:

    if something_is_true:
      do this
    elif something_else_is_true:
      do that
    else:
      do the other thing
    

      

    作为if和elif语句一部分的表达式可以是比较(==,<,>,<=,> =等),也可以是任何python对象。通常,零序列和空序列都是False,其他所有序列都是True。Python没有switch语句。

    循环

    Python有两个循环。for循环遍历序列,例如列表,文件或其他一些系列:

    for item in ['spam', 'spam', 'spam', 'spam']:
      print item
    

      

    作为if和elif语句一部分的表达式可以是比较(==,<,>,<=,> =等),也可以是任何python对象。通常,零序列和空序列都是False,其他所有序列都是True。Python没有switch语句。

    循环

    Python有两个循环。for循环遍历序列,例如列表,文件或其他一些系列:

    for item in ['spam', 'spam', 'spam', 'spam']:
      print item
    

      
    上面的代码将打印“垃圾邮件”四次。在条件为真时执行while循环:

    counter = 5
    while counter > 0:
       counter -= 1
    

      

    每次迭代时,计数器变量减1。此代码执行直到表达式为False,在这种情况下是“counter”达到零时。

    迭代连续数字的更好方法是使用“range”函数返回从0到n-1的迭代器:

    for i in range(5):
      print i  # Prints numbers from 0 to 4
    

      “范围”功能支持其他允许指定起始值和步长值的模式:

    range(4, 10)    # Returns values: 4, 5, 6, 7, 8, 9
    range(4, 10, 2) # Returns values: 4, 6, 8
    

      

  • 相关阅读:
    mysql5.7.11修改root默认密码
    linux tar文件解压
    用Maven插件生成Mybatis代码/数据库
    java对象与json对象间的相互转换
    json串转对象
    maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener
    MyBatis多数据源配置(读写分离)
    使用HTML5 Web存储的localStorage和sessionStorage方式
    谷歌浏览器 DEV Tools
    数据库建表原则
  • 原文地址:https://www.cnblogs.com/daniumiqi/p/12186188.html
Copyright © 2011-2022 走看看