pythonshell命令
‘壹’ python交互模式下,Python Shell将指令翻译成机器语言的转换方式属于
REPL
什么是 REPL
REPL 是 4 个单词的首字母组:Read Eval Print Loop.
它表示一个循环中,在这个循环中不断的执行:
Read -> Eval -> Print -> Read -> Eval
-> Print -> Read -> Eval -> Print -> ...
所以更准确点的英文写法其实是 2 个单词: read-eval-print loop。Read,读取用户输入
Eval, 执行输入内容
Print,打印输出结果
Loop, 不断循环以上步骤
由上面的描述可知,我们经常用的命令行或 Shell 就是这种模式。不过一般提起 REPL 的时候,都是特指编程语言的交互式运行环境。
拥有交互式的编程环境对一个语言来说,特别是它的学习者来说,是一个非常大的帮助。
下面我们就重点聊聊 Python 的 REPL。
进入 Loop
大概有这么几种方式能够进入 python 的交互式解释器模式:不带任何参数运行 python,这是最常见的方式
通过 py 启动器运行解释器,这是 windows 下特有的方式
使用 python -i some_script.py,执行脚本后再进入,这个我们也在前面文章中介绍过了
其它 IDE(IDLE, PyCharm 等)内嵌的所谓 python shell 或 python console,它们也要依赖系统安装的 python
进入之后,首先看到的就是一段开场信息,然后就是 >>> 和一个闪烁的光标在等待你的输入。“ 冷门小知识:启动时打印的消息称为 banner,code 模块。
前面的符号 >>> 称为 提示符(Prompt String),我们在命令行中看到的 > 或 $ 或 # 等都是提示符。
熟悉 linux 系统的小伙伴可能知道,环境变量有一个 PS1,可以用来定义提示符的样式:
[root@host ~]# echo $PS1
[\u@\h \W]\$
这里的 1 代表序号,表示这是主提示符,后面还有 PS2,PS3,PS4。
扯远了,咱还是回到 python。同样的,这里的 >>> 也是主提示符,它是保存在 sys.ps1 这个特殊变量里的,此外还有个 sys.ps2 的值是 ...。“ 注意,提示符后面有 1 个空格。sys.ps1 = '>>> ',sys.ps2 = '... '。
好玩的是,这两个变量是可以自定义的:
>>> sys.ps1 = 'DavyCloud Python 教程 2020 > '
DavyCloud Python 教程 2020 >
DavyCloud Python 教程 2020 > x = 1
DavyCloud Python 教程 2020 > print(x)
‘贰’ 编写shell脚本运行python文件
(已尝试mac自带的文本编辑器,脚本编辑器无法编写.sh文件)
运行后出现vim主界面,代表mac有vim,并且成功进入了vim
想要运行.py文件,直接使用绝对路径即可(此路径可以通过直接拖进终端即可获得,或者使用快捷键Option+Command+C 复制文件途径。)
格式: /可执行文件所在目录/可执行文件
到这里简单可以运行regression.py文件的shell脚本写好了。
解决办法:修改rt.sh文件权限,命令为:
解决办法:同问题一
查了资料问题是'(',')'要使用转义,才可以识别即'(',')'。所以在最开始打开regression.py文件把所有的括号都加了一遍,这种方法不会再出现括号的错误,但是这并不是一个合理的解决办法,这样太麻烦了,而且编写时是不会这样处理的,所以在看了另一个别人的脚本时,发现在.py脚本的头部,即第一行加了一句话
这时使用未做过括号处理的.py文件,也不会报错了!
可参考: https://blog.csdn.net/wh_19910525/article/details/8040494
regression.py在不使用rt.sh文件是可以成功运行的,但是此时出现no mole错误。
开始以为是quandl自己安装的问题,在python2.7是Quandl,python3.6是quandl,所以在终端使用pip3,pip分别安装,但是运行时还会出现同样问题,但发现一个问题不管是在使用pip,还是pip3在终端运行时,均会说此包已存在,但存在路径均为python3.6下,所以尝试更改regression.py文件的头部第一行,更改为: #!/usr/bin/env python3
可以正常运行了!!!!
还是开心的晒一下,结果吧。(虽然和脚本无关了,哈哈哈哈哈)
对于使用shell脚本,传递参数,后续进行学习总结,今天就总结好编写shell脚本运行python文件吧!
‘叁’ Python Shell 怎样清屏
PythonShell中清屏一般有两种方法。
1、使用os模块
os.system("cls")#windows上执行cls命令
os.system("clear")#linux上执行clear命令
上图是linux上的示例,按下回车键后,马上清除所有显示内容。
2、使用subprocess模块
subprocess.call("clear")#linux上借助于call执行clear命令
subprocess.call("cls",shell=True)#windows上执行cls命令
上图是linux上的示例,按下回车键后,马上清除所有显示内容。
‘肆’ python和shell有什么区别
1、Python不需要记忆太多的命令,语法简单,有C基础的人学起来非常容易上手,易于使用;而shell要学的命令有很多,但常用的命令不是很多。
2、Python可移植性好,它的标准是统一的,不会出现因为平台的不同运行结果不同,但shell的命令在各个平台上有些不一样。
3、Python更加强大,shell是一种命令语言,同时也可以看成是一个命令解释器,用于接收诸如awk、sed的命令调用等完成相关的功能。而Python则是一种编程语言,Python提供给程序员更大的自由度和灵活性,以完成shell所不能完成或者难于完成的编码任务,如实现面向对象的模块化设计、操作服务器数据库等。
4、Python支持面向对象、支持可扩展性和可嵌入性,同时提供了功能丰富的库。
5、性能方面,很明显地,Python的执行效率要高于shell,有一个很充分的理由就是shell本身的各种进程间IPC通信要造成相当大的开销;而Python底层是C语言实现的,其性能可以接近于C,但具体相同功能的Python代码量却要比C短很多倍,因此Python的性能高于shell。