终端窗口运行.py程序 

  首先你要安装python,命令行输入 python 有python提示符 >>> 出现说明安装成功

#!/usr/bin/env python3
# -*- coding: utf-8 -*- ' a test module ' __author__ = 'Michael Liao' import sys def test():
args = sys.argv
if len(args)==1:
print('Hello, world!')
elif len(args)==2:
print('Hello, %s!' % args[1])
else:
print('Too many arguments!') if __name__=='__main__':
test()

  

  第1行和第二行是标准注释,第一行可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第二行可以表示该.py文件使用的标准UTF-8编码;

  第四行是一个字符串,表示模块的文档注释,任何模块的第一个字符串都默认为文档的注释

  以上就是Python模块的标准文件模板,当然也可以全部删掉不写,但是,按标准办事肯定没错。

补充

  1)导入sys模块后,我们就有了变量sys指向该模块,利用sys这个变量,就可以访问sys模块的所有功能。sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称

  2)当我们在命令行运行hello模块文件时,Python解释器把该模块内的一个特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。

  

输入命令格式

  这里的地址是完整的地址,

python D:\desktop\forTest.py #文件的完整目录

  结果:

命令行里的 python shell  环境

  打开cmd后直接输入 python 会进入 python 的 shell 环境,这里可以可以输入命令,还有就是 shell 里会有提示符 >>>

  如 print('I love you')   

  运行结果:

 

  使用 exit() 退出 python 的 shell 环境

  

  File "<stdin>", line 1 错误:

  在shell 里面输入 python +程序名字 ,会出现这个错误,应该在终端下运行(见上)

模块内的作用域

  参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017455068170048

  这个模块内的作用域和变量的作用域有些区别,前者区分的是不同模块内的变量名,即该模块被导入后模块内的变量是否能被新模块引用。(但是通过增加下划线确实能将public变量变为private变量,在一个模块中的变量也能受到影响,参见面向对象编程

  在模块中,我们可能会定义很多函数和变量,有的函数和变量我们希望给别人使用,但是有的变量和函数我们不希望被别人使用。在python中,是通过_前缀来实现的。

  正常的函数和变量名是公开的(public),可以被直接引用,比如:abcx123PI等;

  类似__xxx__这样的变量是特殊变量,可以被直接引用(但是不可以自己创建),但是有特殊用途,比如上面的__author____name__就是特殊变量,hello模块定义的文档注释也可以用特殊变量__doc__访问,我们自己的变量一般不要用这种变量名;

  类似_xxx__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc__abc等;

  之所以我们说,private函数和变量“不应该”被直接引用,而不是“不能”被直接引用,是因为Python并没有一种方法可以完全限制访问private函数或变量,但是,从编程习惯上不应该引用private函数或变量。

#被导入的模块forTest2.py代码
#__arbitrarily__=='不能任意命名的特殊变量'#不能这样,会报错
arbitrarily='能被直接引用的变量'
_arbitrarily='非公开,不应该被直接引用,但是能'
__arbitrarily='非公开,不应该被直接引用,但是能,和上面的一样' #作为测试的模块,其中导入了forTest2.py import forTest2
print(forTest2.arbitrarily)
print(forTest2._arbitrarily)
print(forTest2.__arbitrarily)
print(forTest2.__name__) #输出
能被直接引用的变量
非公开,不应该被直接引用,但是能
非公开,不应该被直接引用,但是能,和上面的一样
forTest2

  private函数或者变量不应该被别人引用,那么可以用来干什么呢,可以用来做代码封装和抽象,如:

def _private_1(name):
return 'Hello, %s' % name def _private_2(name):
return 'Hi, %s' % name def greeting(name):
if len(name) > 3:
return _private_1(name)
else:
return _private_2(name)

  在模块里公开greeting函数,而把内部逻辑用private函数隐藏起来了,这样,调用greeting函数不用关心内部的private函数细节,这也是一种非常有用的代码封装和抽象的方法,即:外部不需要引用的函数全定义为private,只有外部需要引用的函数才定义为public

  数据封装、继承和多态是面向对象编程的三大特点

模块的搜索路径

  当我们试图导入一个模块时,python会在指定的路径下搜索对应的.py文件,如果找不到就会报错

>>> import mymodule
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mymodule

  

  默认情况下,python会搜索当前目录,所有已安装的内置模块和第三方模块,搜索路径存放在sys的path变量当中

>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', ..., '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']

  有两种办法可以添加自己的搜索目录

  一是直接修改sys.path,添加要搜索的目录

>>> import sys
>>> sys.path.append('/Users/michael/my_py_scripts')

  这种方法是在运行时修改,运行结束后失效

  第二种方法时修改环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中,设置方式与设置Path环境变量类似。注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响

  

  

从终端运行python程序的更多相关文章

  1. 编辑器sublime、终端运行python

    sublime编辑器 Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用) Sublime Text是由程序员Jon Skinner于2008年1月份 ...

  2. 解释器、环境变量、如何运行python程序、变量先定义后引用

    python解释器的介绍.解释器的安装.环境变量的添加为什么加环境变量.如何调取不同的解释器版本实现多版本共存.python程序如何运行的.python的变量定义 一.python解释器: 用来翻译语 ...

  3. 教你如何编写、保存与运行 Python 程序

    第一步 接下来我们将看见如何在 Python 中运行一个传统的“Hello World”程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Python 来运行的你的程 ...

  4. 运行python程序

    1 在windows下运行python程序 1)从DOS命令行运行python脚本 用python解释器来执行python脚本,在windows下面python解释器是python.exe,我的pyt ...

  5. editplus3运行Python程序

    editplus3是一款不错的编辑器,他可以编译,运行java,php等各种程序,现把他运行Python程序的方法贴出来,首先得安装python,然后打开editplug3,工具——配置用户工具——组 ...

  6. 如何使用sublime编辑器运行python程序

    现在越发喜欢sublime编辑器了,不仅界面友好美观.文艺,可扩展性还特别强. sublime本身是不具备运行python程序的能力的,需要做些设置才可以.以下是安装好sublime后设置的步骤: 点 ...

  7. Linux(9)后台运行python程序并输出到日志文件

    后台运行python程序并标准输出到文件 现在有test.py程序要后台部署, 里面有输出内容 使用命令: nohup python -u test.py > test.log 2>&am ...

  8. 周一02.3运行python程序的两种方式

    一.运行python程序的两种方式 方法一:交互式:                     优点:输入一行代码立刻返回结果                      缺点:无法永久保存代码 方法二: ...

  9. Notepad++编写运行python程序

    Notepad++编写运行python程序. 1.菜单栏->语言->P->Python设置语言为Python 2.写好代码后ctrl+s保存文件为py文件 3.菜单栏->运行, ...

随机推荐

  1. 中文版 ImageNet Classification with Deep Convolutional Neural Networks

    ImageNet Classification with Deep Convolutional Neural Networks 摘要 我们训练了一个大型深度卷积神经网络来将ImageNet LSVRC ...

  2. 如何设置ASP.NET站点页面运行超时

    全局超时时间 服务器上如果有多个网站,希望统一设置一下超时时间,则需要设置 Machine.config 文件中的 ExecutionTimeout 属性值.Machine.config 文件位于 % ...

  3. 理解ZBrush中的笔触

    笔触主要配合笔刷来使用,同样的笔刷搭配不同的笔触可以绘制出各种不同的效果.简言之,ZBrush 4R8就是提供了各种各样的笔触效果,例如,有模拟连贯笔触的效果,也有模拟喷枪喷洒的笔触效果. 下面简单认 ...

  4. 玩转HTML5移动页面(优化篇)

    标签:h5 页面优化收藏 热门分享 网页设计师必备的 酷站收藏网站 2013年不容错过的app ui素材 40个漂亮的扁平化网页设计欣赏 国内网页设计公司网站欣赏 55套网页设计常用的psd格式UI ...

  5. luogu P3795 钟氏映射(递推)

    题意 n<=107 20MB 题解 也就是给n个点,把他们一个分为一组,或两个分为一组,有多少种方法. 空间大点随便做. 我们靠递推. 一个新点,要不自己一组,要不和前面的一个点构成一组. 所以 ...

  6. BZOJ 1050 [HAOI2006]旅行comf(最小生成树)

    题意 第一行包含两个正整数,N和M.下来的M行每行包含三个正整数:x,y和v.表示景点x到景点y之间有一条双向公路 ,车辆必须以速度v在该公路上行驶.最后一行包含两个正整数s,t,表示想知道从景点s到 ...

  7. mariadb 视图 事务 索引 外键

    视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦   假如因为某种需求,需要将user拆房表usera和表userb,该两张表 ...

  8. 关于iptables允许samba的问题

    今天同事跟我说他们部门的共享不能用了,想了想,最近变更的只有iptables,于是看看是否是这个原因,发现没有允许samba的入站和出站规则,我的iptables规则默认是所有都drop的,但是不知确 ...

  9. 紫书 习题 11-4 UVa 1660 (网络流拆点法)

    这道题改了两天-- 因为这道题和节点有关, 所以就用拆点法解决节点的容量问题. 节点拆成两个点, 连一条弧容量为1, 表示只能经过一次. 然后图中的弧容量无限. 然后求最小割, 即最大流, 即为答案. ...

  10. 洛谷—— P2896 [USACO08FEB]一起吃饭Eating Together

    https://www.luogu.org/problem/show?pid=2896 题目描述 The cows are so very silly about their dinner partn ...