zoukankan      html  css  js  c++  java
  • Learning Python第二版笔记-Chapter 3 How to run your program

    本文介绍了如何运行一个Python程序,有价值的信息不多,罗列如下:

    1. 第一种方式叫Interactive Coding,就是在Python的shell下输入语句。这样做的代价是代码一被输入就会被执行,可以用来快速的做单元测试(比如想知道某句代码应该怎 么写来满足需求,可以用这种模式)。这里需要注意的是以下几点:a) 这种模式下不需输入print语句,直接输入表达式或变量,就能打印出表达式和变量的值 b) 这种模式下输入的代码不能带有前置空格,也就是不能以空格打头 c) 如何输入一个复合语句,也就是这是一段代码,不是一句。当我们输入一段复合语句时,Python shell的prompt会从 >>> 变成 ... ,然后我们可以继续输入,需要记住的是,当语句输入完时,要输入一个空白回车,告诉Python shell,这个语句结束了,方可!

    2. 第二种方式就是代码写在一个文件里面。首先我们可以用python <filename>来运行这个python程序,记住python的程序要把扩展名取为.py;其次,UNIX/Linux上特有的,和 bash一样,在代码的第一行,输入#!/usr/bin/python ,这样,直接把这个文件附上可执行权限,就可以直接执行这个文件了,和bash编程一样;再次,可以把代码的第一行写成这样:#! /usr/bin/env python ,和上一次不一样的是,这样写的话,env命令就会在当前环境中寻找python可执行程序,不需要我们将python可执行文件的路径hard code到代码中,这也是UNIX/Linux中特有的。

    3. 第三种方式是直接在windows下双击.py文件,这就不说了,我们做python基本都是在Linux下

    4. imports & reloads 。这个很重要,import命令可以直接导入一个py文件,具体的搜索路径在第15章将描述。如import script4,注意,这里script4不要写成script4.py,import会自动寻找扩展名为py的python文件。在Python中,每 个py文件都称为module,这些文件中的变量、函数等都称为该module中的attribute,通过import,我们就可以将这个module 载入,然后访问其中的attributes。需要注意的是,import的动作只会做一次,也就是说,如果我们import script4后,就算这个script4被修改了,我们再次执行import script4的话也不会有任何反应,因为Python认为import是一个非常expensive的动作,所以只会做一次!如果要python重新载 入一个已经import过的module的话,请用reload,语法是这样的:reload(script4),注意,这里reload要以括号的方式 引用script4,因为reload是一个function,而import是一个statement!reload就会重新加载script4,不过 在reload的时候,要求script4一定要被import过!

    5. 访问module、attributes。import了一个module之后,就可以访问module中的attribute,方式有两种,如下(title是myfile.py中的一个变量):

    % python # Start Python.
    >>> import myfile # Run file; load module as a whole.
    >>> print myfile.title # Use its attribute names: `.' to qualify.

    % python # Start Python.
    >>> from myfile import title # Run file; copy its names.
    >>> print title #Use name directly: no need to qualify.

    都看到了,第一种就是用Full Qualify的方式来引用;第二种通过关键字from,直接将title引用。

    6. import module之后,可以用dir函数查看到这个module中所有的attribute,如:

    >>> dir(threenames)
    ['__builtins__', '__doc__', '__file__', '__name__', 'a', 'b', 'c']

    threenames是threenames.py,已经被import,用dir就可以看到里面的attribute,用两个underscore标识的是内置的attribute,每个module都会被python预置这些attribute,和C++很像。

    7. Embedded Calls. Python可以被内置在很多地方,比如python的代码被内置在数据库中、网页中、其他程序代码中等等。这里有个C调用Python的例子:

    #include <Python.h>
    ...
    Py_Initialize( );
    PyRun_SimpleString("x = brave + sir + robin");

    只要include了Python.h,就可以用上面的函数来执行python的代码。简言之,python和很多其他的语言都有很好的兼容性。
  • 相关阅读:
    LeetCode 88. Merge Sorted Array
    LeetCode 75. Sort Colors
    LeetCode 581. Shortest Unsorted Continuous Subarray
    LeetCode 20. Valid Parentheses
    LeetCode 53. Maximum Subarray
    LeetCode 461. Hamming Distance
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode 976. Largest Perimeter Triangle
    LeetCode 1295. Find Numbers with Even Number of Digits
    如何自学并且系统学习计算机网络?(知乎问答)
  • 原文地址:https://www.cnblogs.com/super119/p/1989384.html
Copyright © 2011-2022 走看看