zoukankan      html  css  js  c++  java
  • 1.2、Python快速入门(0529)

    要素7:输入/输出

    1、python解释器提供了3种标准文件对象,分别为标准输入、标准输出和标准错误,它们在sys模块中分别以sys.stdin、sys.stdout和sys.stderr形式提供;

    2、python的print语句实现打印--一个对程序员友好的标准输出流接口;

    3、从技术角度来讲,print是把一个或多个对象转换为其文本表达形式,然后发送给标准输出或另一个类似文件的流;

    (1)在python中,打印与文件和流的概念联系紧密;

    文件写入方法是把字符串写入到任意文件;

    print默认把对象打印到stdout流,并添加了一些自动的格式化。

    (2)实质上,print语句只是python的人性化特性的具体实现,它提供了sys,stdout,write()的简单接口,再加上一些默认的格式设置;

    (3)print接受一个逗号分隔的对象列表,并为行尾自动添加一个换行符,如果不需要,则在最后一个元素后添加逗号。


    要素7:输入/输出

    print "String %format1 %format2 ..." %(variable1,variables,...)

    字符                                                             输出格式

    d,i                                                             十进制整数或长整数

    u                                                                  无符号整数或长整数

    o                                                                  八进制整数或长整数

    x                                                                  十六进制整数或长整数

    X                                                                 十六进制整数(大写字母)

    f                                                                   浮点数,如[ - ]m.ddddd

    e                                                                  浮点数,如[ - ]m.ddddde±xx

    E                                                                  浮点数,如[ - ]m.dddddE±xx

    g,G                                                            指数小于-4或更高精度时使用%e或%E,否则使用%E

    s                                                                   字符串或任意对象。格式化代码使用str()生成字符串

    r                                                                   同repr()生成字符串

    c                                                                  单个字符

    %                                                                字面量%

     

    格式化输出:

    print "String %format1 %format2 ..." %(variable1,variables,...)

    变量variable1由格式format1来表示

    变量variable2由格式format2来表示

    显示为什么由格式符format决定

    如果有多个变量,可以将数值变现为元组来定义

    如果有两个格式符(%d和%f),那么后面就要有两个数值变量进行显示

     

    这里也可以用 3.1 代替num2,即对应的数据可以从变量中引用的,也可以是直接给定的数值

    系统会自动把 s 替换为所指定的字符串本身(name)

    如果变量本身不是字符串,比如 num 的引用对象是数值,这里也会把 7.9 转换为字符串进行显示,而不是7.90000这样的数值,即不是数值类型float,但是type(num)的类型依然时float

     

    数据类型的转换过程:尤其是使用两种互相不兼容的类型进行操作时,

    显示

    隐式

    dir(__builtin__)     //可以查看内部的函数,这是一个内置模块,python解释器启动时,这个模块会被自动导入import 

    ['ArithmeticError',
     'AssertionError',
     'AttributeError',
     'BaseException',
     'BufferError',
     'BytesWarning',
     'DeprecationWarning',
     'EOFError',
     'Ellipsis',
     'EnvironmentError',
     'Exception',
     'False',
     'FloatingPointError',
     'FutureWarning',
     'GeneratorExit',
     'IOError',
     'ImportError',
     'ImportWarning',
     'IndentationError',
     'IndexError',
     'KeyError',
     'KeyboardInterrupt',
     'LookupError',
     'MemoryError',
     'NameError',
     'None',
     'NotImplemented',
     'NotImplementedError',
     'OSError',
     'OverflowError',
     'PendingDeprecationWarning',
     'ReferenceError',
     'RuntimeError',
     'RuntimeWarning',
     'StandardError',
     'StopIteration',
     'SyntaxError',
     'SyntaxWarning',
     'SystemError',
     'SystemExit',
     'TabError',
     'True',
     'TypeError',
     'UnboundLocalError',
     'UnicodeDecodeError',
     'UnicodeEncodeError',
     'UnicodeError',
     'UnicodeTranslateError',
     'UnicodeWarning',
     'UserWarning',
     'ValueError',
     'Warning',
     'ZeroDivisionError',
     '__IPYTHON__',
     '__IPYTHON__active',
     '__debug__',
     '__doc__',
     '__import__',
     '__name__',
     '__package__',
     'abs',
     'all',
     'any',
     'apply',
     'basestring',
     'bin',
     'bool',
     'buffer',
     'bytearray',
     'bytes',
     'callable',
     'chr',
     'classmethod',
     'cmp',
     'coerce',
     'compile',
     'complex',
     'copyright',
     'credits',
     'delattr',
     'dict',
     'dir',
     'divmod',
     'dreload',
     'enumerate',
     'eval',
     'execfile',
     'file',
     'filter',
     'float',
     'format',
     'frozenset',
     'get_ipython',
     'getattr',
     'globals',
     'hasattr',
     'hash',
     'help',
     'hex',
     'id',
     'input',
     'int',
     'intern',
     'isinstance',
     'issubclass',
     'iter',
     'len',
     'license',
     'list',
     'locals',
     'long',
     'map',
     'max',
     'memoryview',
     'min',
     'next',
     'object',
     'oct',
     'open',
     'ord',
     'pow',
     'print',
     'property',
     'range',
     'raw_input',
     'reduce',
     'reload',
     'repr',
     'reversed',
     'round',
     'set',
     'setattr',
     'slice',
     'sorted',
     'staticmethod',
     'str',
     'sum',
     'super',
     'tuple',
     'type',
     'unichr',
     'unicode',
     'vars',
     'xrange',
     'zip']
    View Code

    help(str)                //获取内键帮助命令

    Help on class str in module __builtin__:
    
    class str(basestring)
     |  str(object='') -> string
     |  
     |  Return a nice string representation of the object.
     |  If the argument is a string, the return value is the same object.
     |  
     |  Method resolution order:
     |      str
     |      basestring
     |      object
     |  
     |  Methods defined here:
     |  
     |  __add__(...)
     |      x.__add__(y) <==> x+y
     |  
     |  __contains__(...)
     |      x.__contains__(y) <==> y in x
     |  
     |  __eq__(...)
     |      x.__eq__(y) <==> x==y
     |  
     |  __format__(...)
     |      S.__format__(format_spec) -> string
     |      
     |      Return a formatted version of S as described by format_spec.
     |  
     |  __ge__(...)
     |      x.__ge__(y) <==> x>=y
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __getnewargs__(...)
     |  
     |  __getslice__(...)
     |      x.__getslice__(i, j) <==> x[i:j]
    View Code

    要素7:输入/输出

    1、%后面可以使用的修饰符,(如果有,则只能按如此顺序)

    %[(name)][flags][width][.precision]typecode

    • 位于括号中的一个属于后面的字典的键名,用于选出一个具体项   -->name
    • 下面标志中的一个或多个  --> flags
    • -:表示左对齐,默认为右对齐;
    • +:表示包含数字符号,正数也会带“+”;
    • 0:表示一个零填充。
    • 一个指定最小宽度的数字    -->width
    • 一个小数点,用于按照精度分割字段的宽度   -->.precision
    • 一个数字,指定要打印字符串中的最大字符个数,浮点数中小数点之后的位数,或者整数的最小位数;
    • 例子:
    • d={'x':32, 'y':27.49023, 'z':65}
    • print "%(x)-10d %(y)0.3g" % d

    指定宽度

     

    指定要打印字符串中的最大字符个数


    字典:

    kv(键值对)集合,使用冒号:分割  

    字典也是可变对象

    例:{"a":31,"b":545}

     

    引用d1中的键a的值(使用%(a)),而且让31转换显示为浮点数(使用f) ,此时使用如果键使用数值可能不行


    要素8:函数的创建与调用

    1、函数是实现模块化编程的基本组件;

    2、python使用def语句定义函数;

    3、函数可以参数化,通过传递不同的参数来调用;

    4、每个python函数都有一个返回值,默认为None,也可以使用"return value"明确定义返回值;

    5、def语句创建一个函数对象,并同时创建一个指向函数的对象引用:

    • 函数也是对象,可以存储在组合数据类型中,也可以作为参数传递给其他函数;
    • callable()可用于测试函数是否可调用

     

    def functionsName(arguments):

    suite             //函数体,主体部分

    arguments   //参数

    使用def语句定义函数,显示变量的值

    printName                          //函数名

    def printName                    //这里是先使用 def 定义一个函数名 printName

    name                                  //传递的参数 

    print name                          //定义主题部分,这里自动缩进,一般为4个字符

    printName('Tony')               //把传递的内容 (Tony) 传递给参数 name,name 接收到内容 Tony 后,然后由函数主体 print name 进行执行

    tony                                    //函数主题执行结果

     

    ()                                        //指对可调用对象的调用

    任何一个对象的内置方法决定了这个对象可以参与的运算,而()就是调用运算符

    name.__call__()               //如果 name 没有这个方法,那么 name() 就会报错

    help(str)                            //可以获取内置方法,但这里没有

    每个模块都有一个名为__name__的内建变量,此变量值会根据调用时

    • 如果模块被导入,__name__的值是模块的名字
    • 如果模块被直接执行,__name__的值是“__main__”

    把name的指向对象也指向test所指向的对象,传递了引用的指针

     


    要素8:函数的创建与调用

    1、python有众多内置函数

    2、python标准库拥有众多内置模块,这些模块拥有大量函数

    • python 模块实际上就是包含python代码的.py文件,其拥有自定义的函数与类及变量等;
    • 导入模块使用import语句进行,后跟模块名称(不能指定模块文件名的后缀.py)
    • 导入一个模块后,可以访问其内部包含的任意函数、类及变量

     

    dir(__builtin__) 可以查看内部的函数,这是一个内置模块,python解释器启动时,这个模块会被自动导入import

    dir(__builtin__)    内置函数:dir(), id(), type(),str(),help(),len(),callable()


    python编程基础及编程风格

    1、语句和语法

    2、标识符

    3、基本编程风格

    语句和语法

    1、注释

    #:可以从一行的任何地方开始

    三个单引号(''')或三个双引号(""")是实现多行注释的

    2、续行

    • ''':闭合操作符,单一语句跨多行

    3、代码组

    • 缩进相同的一组语句构成的一个代码块
    • 首行以关键字开始,如if、while等,以冒号结束
    • python使用缩进来分割代码组,同一个代码组的代码行必须严格左对齐,否则会造成语法错误。

    4、同一行放置多个语句

    • ; 以分号作为分隔符

    5、模块

    • 每一个python脚本文件都可以被当成一个模块
    • 模块里的代码可以是一段直接执行的脚本,也可以是一些类似库函数的代码从而可由别的模块执行导入(import)

    模块名称就是脚本文件的名称

    #vim mod.py

    #vim b.py      

          

    因为mod.py定义的是在家目录下,所以这里导入时也是在家目录下,因该特定路径下 模块里面的代码可以是一段可以直接执行的脚本,导入时就直接执行了,但一般并不期望这种结构,

    所以一般模块中应是可调用的代码段,而不是可以直接执行的代码。


    标识符

    1、标识符是计算机语言中允许作为名字的有效字符集合

    • 其中有一部分是关键字,它们是语言的标识符,因此是保留字,不能用于其他用途;
    • python还有称为“内建”的标识符集合,虽不是保留字,仍不推荐使用这些特别的名字;

    2、python标识符

    • 第一个字符只能使用子母或下划线
    • 余下的字符可以使用字母、数字或下划线
    • 区分字符大小写

    python3的关键字

     


    python基本编程风格

    1、注释

    • 既不能缺少注释,亦要避免过度注释

    2、文档

    • python允许通过__doc__动态获得文档字串

    In [60]: print str.__doc__
    str(object='') -> string

    Return a nice string representation of the object.
    If the argument is a string, the return value is the same object.

    3、缩进

    • 统一缩进4个字符串

    4、标识符名称

    • 见名知义

     

    查看某个內键命令的文档

    print *.__doc__


    python命名惯例

    1、以单一下划线开头的变量名(_x)不会被from module import *语句导入

    2、前后有下划线的变量名(__x__)是系统变量名,对解释器有特殊意义;

    3、以两个下划线开头、但结尾没有下划线的变量名(__x)是类的本地变量;

    4、交互式模式下,只有单个下划线的变量名(_)用于保存最后表达式的结果。

     

    a+b的实质是解释器通过去装载a字符串中的add方法或者连接方法把二者加起来的

    x+y就相当于调用对象的內键方法

     


    python文件结构

    对于模块文档,第二行使用  " "  引起来,如果是多行,则用三个单引号或者双引号引起来,其中写的信息都可以使用doc直接调用,比如模块的名称是mod,

    那么使用 mod.__doc__ 可以查看文档信息

    foo = FooClass()             //把类进行实例化(实例化:调用类的名称,传递对象),创建一个自定义类型的对象

    类就是用户的自定义类型,类也是有文档的,单行用双引号,跨行用三个引号

    实质上任何一种类型就是实例化了一个特定的对象

    例如:hello就是 str 这个内键的类的实例化出来的对象,具体的把 str 这种内键类型做了具体化。

    表示把字符串实例化成abc

     

    16和17是相同的原因是str是内置类型,所有内置类型可以直接进行简化的方式调用

    str是个內键的类,这个过程就是把这个內键的类(str)真正造出来一个符合这个內键类的要求的对象(xy)。

     

    一个类的方法在实例化出一个对象之后,可以对此对象直接执行这个方法

    使用对象引用的方式,调用islower方法(属于str这个內键类的方法),判断a中的字符串是不是小写

    调用str这个内建类的方法islower直接施加在对象a上。

     

    自定义类就是自己定义一个类型的格式,就是使用一种特定结构去组织了数据。

    有数据之后还要对数据进行操作,所以类里面还包括了对数据进行操作的方法,所以类就是自定义类型


    python文件主程序

     1、主程序

    • 无论当前模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码

    2、注意:所有的模块都有能力执行代码

    • 最高级别的python语句(没有缩进的)在模块被导入时就会执行,无论是否真的需要执行;
    • 妥当的做法:除了那些真正需要执行的代码以外,所有的功能代码都通过函数建立,因此:
    • 仅在主程序模块中编写大量的顶级可执行代码
    • 用于被导入的模块只应该存在较少的顶级执行代码

    3、__name__指示模块应该如何被加载 

    每个模块都有一个名为_name_的內键变量,此变量值会根据调用此模块的方式发生变化:

    • 如果此文件被作为模块导入,则__name__的值作为模块名称
    • 如果此文件被直接执行,则__name__的值为“__main__” 

     

  • 相关阅读:
    Java第十次作业-房地产;学生成绩计算
    找回感觉之模拟房地产首付计算
    软件工程第四次作业—结对项目
    【作业】需要改进的用户体验二三则
    项目互测测试方式及报告
    [ASE]项目介绍及项目跟进——TANK BATTLE·INFINITE
    Hello World!
    [ASE]sprint3 总结 & sprint4计划
    [ASE][Daily Scrum]12.15
    [ASE][Daily Scrum]12.12
  • 原文地址:https://www.cnblogs.com/hanshanxiaoheshang/p/9311132.html
Copyright © 2011-2022 走看看