设为首页 收藏本站
查看: 653|回复: 0

[经验分享] Using the Python Interpreter

[复制链接]

尚未签到

发表于 2017-4-24 10:21:43 | 显示全部楼层 |阅读模式
Navigation



  • index

  • modules |

  • next |

  • previous |


  • Python v3.1.3 documentation »

  • The Python Tutorial »





2. Using the Python Interpreter


2.1. Invoking the Interpreter
  The Python interpreter is usually installed as /usr/local/bin/python3.1 on those machines where it is available; putting
/usr/local/bin in your Unix shell’s search path makes it possible to start it by typing the command

python3.1




  to the shell. [1] Since the choice of the directory where the interpreter lives is an installation option, other places are possible; check with your local Python guru or system administrator. (E.g.,
/usr/local/python is a popular alternative location.)
  On Windows machines, the Python installation is usually placed in
C:\Python31, though you can change this when you’re running the installer. To add this directory to your path, you can type the following command into the command prompt in a DOS box:

set path=%path%;C:\python31




  Typing an end-of-file character (Control-D on Unix,
Control-Z on Windows) at the primary prompt causes the interpreter to exit with a zero exit status. If that doesn’t work, you can exit the interpreter by typing the following command:
quit().
  The interpreter’s line-editing features usually aren’t very sophisticated. On Unix, whoever installed the interpreter may have enabled support for the GNU readline library, which adds more elaborate interactive editing and history features. Perhaps the quickest
check to see whether command line editing is supported is typing Control-P to the first Python prompt you get. If it beeps, you have command line editing; see Appendix
Interactive Input Editing and History Substitution for an introduction to the keys. If nothing appears to happen, or if
^P is echoed, command line editing isn’t available; you’ll only be able to use backspace to remove characters from the current line.
  The interpreter operates somewhat like the Unix shell: when called with standard input connected to a tty device, it reads and executes commands interactively; when called with a file name argument or with a file as standard input, it reads and executes
a script from that file.
  A second way of starting the interpreter is python
-c command [arg]
..., which executes the statement(s) in command, analogous to the shell’s
-c option. Since Python statements often contain spaces or other characters that are special to the shell, it is usually advised to quote
command in its entirety with single quotes.
  Some Python modules are also useful as scripts. These can be invoked using
python -m module
[arg] ..., which executes the source file for
module as if you had spelled out its full name on the command line.
  Note that there is a difference between python
file and python
<file. In the latter case, input requests from the program, such as calling
sys.stdin.read(), are satisfied from
file. Since this file has already been read until the end by the parser before the program starts executing, the program will encounter end-of-file immediately. In the former case (which is usually what you want) they are satisfied from whatever file
or device is connected to standard input of the Python interpreter.
  When a script file is used, it is sometimes useful to be able to run the script and enter interactive mode afterwards. This can be done by passing
-i before the script. (This does not work if the script is read from standard input, for the same reason as explained in the previous paragraph.)


2.1.1. Argument Passing
  When known to the interpreter, the script name and additional arguments thereafter are passed to the script in the variable
sys.argv, which is a list of strings. Its length is at least one; when no script and no arguments are given,
sys.argv[0] is an empty string. When the script name is given as
'-' (meaning standard input),
sys.argv[0] is set to
'-'. When -c
command is used, sys.argv[0] is set to
'-c'. When
-m module is used,
sys.argv[0] is set to the full name of the located module. Options found after
-c command or
-m module are not consumed by the Python interpreter’s option processing but left in
sys.argv for the command or module to handle.




2.1.2. Interactive Mode
  When commands are read from a tty, the interpreter is said to be in interactive mode. In this mode it prompts for the next command with the
primary prompt, usually three greater-than signs (>>>); for continuation lines it prompts with the
secondary prompt, by default three dots (...). The interpreter prints a welcome message stating its version number and a copyright notice before printing the first prompt:

$ python3.1
Python 3.1 (py3k, Sep 12 2007, 12:21:02)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

  Continuation lines are needed when entering a multi-line construct. As an example, take a look at this
if statement:

>>> the_world_is_flat = 1
>>> if the_world_is_flat:
...     print("Be careful not to fall off!")
...
Be careful not to fall off!










2.2. The Interpreter and Its Environment


2.2.1. Error Handling
  When an error occurs, the interpreter prints an error message and a stack trace. In interactive mode, it then returns to the primary prompt; when input came from a file, it exits with a nonzero exit status after printing the stack trace. (Exceptions handled
by an except clause in a
try statement are not errors in this context.) Some errors are unconditionally fatal and cause an exit with a nonzero exit; this applies to internal inconsistencies
and some cases of running out of memory. All error messages are written to the standard error stream; normal output from executed commands is written to standard output.
  Typing the interrupt character (usually Control-C or DEL) to the primary or secondary prompt cancels the input and returns to the primary prompt.
[2] Typing an interrupt while a command is executing raises the
KeyboardInterrupt exception, which may be handled by a
try statement.




2.2.2. Executable Python Scripts
  On BSD’ish Unix systems, Python scripts can be made directly executable, like shell scripts, by putting the line

#! /usr/bin/env python3.1




  (assuming that the interpreter is on the user’s
PATH) at the beginning of the script and giving the file an executable mode. The
#! must be the first two characters of the file. On some platforms, this first line must end with a Unix-style line ending ('\n'), not a Windows
('\r\n') line ending. Note that the hash, or pound, character,
'#', is used to start a comment in Python.
  The script can be given an executable mode, or permission, using the chmod command:

$ chmod +x myscript.py

  On Windows systems, there is no notion of an “executable mode”. The Python installer automatically associates
.py files with
python.exe so that a double-click on a Python file will run it as a script. The extension can also be
.pyw, in that case, the console window that normally appears is suppressed.



2.2.3. Source Code Encoding
  By default, Python source files are treated as encoded in UTF-8. In that encoding, characters of most languages in the world can be used simultaneously in string literals, identifiers and comments — although the standard library only uses ASCII characters
for identifiers, a convention that any portable code should follow. To display all these characters properly, your editor must recognize that the file is UTF-8, and it must use a font that supports all the characters in the file.
  It is also possible to specify a different encoding for source files. In order to do this, put one more special comment line right after the
#! line to define the source file encoding:

# -*- coding: encoding -*-




  With that declaration, everything in the source file will be treated as having the encoding
encoding instead of UTF-8. The list of possible encodings can be found in the Python Library Reference, in the section on
codecs.
  For example, if your editor of choice does not support UTF-8 encoded files and insists on using some other encoding, say Windows-1252, you can write:

# -*- coding: cp-1252 -*-




  and still use all characters in the Windows-1252 character set in the source files. The special encoding comment must be in the
first or second line within the file.




2.2.4. The Interactive Startup File
  When you use Python interactively, it is frequently handy to have some standard commands executed every time the interpreter is started. You can do this by setting an environment variable named
PYTHONSTARTUP to the name of a file containing your start-up commands. This is similar to the
.profile feature of the Unix shells.
  This file is only read in interactive sessions, not when Python reads commands from a script, and not when
/dev/tty is given as the explicit source of commands (which otherwise behaves like an interactive session). It is executed in the same namespace where interactive commands are executed, so that objects
that it defines or imports can be used without qualification in the interactive session. You can also change the prompts
sys.ps1 and
sys.ps2 in this file.
  If you want to read an additional start-up file from the current directory, you can program this in the global start-up file using code like
if os.path.isfile('.pythonrc.py'):
exec(open('.pythonrc.py').read()). If you want to use the startup file in a script, you must do this explicitly in the script:

import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
exec(open(filename).read())





Footnotes

[1]On Unix, the Python 3.x interpreter is by default not installed with the executable named
python, so that it does not conflict with a simultaneously installed Python 2.x executable.

[2]A problem with the GNU Readline package may prevent this.















Navigation



  • index

  • modules |

  • next |

  • previous |


  • Python v3.1.3 documentation »

  • The Python Tutorial »



© Copyright 1990-2010, Python Software Foundation.


The Python Software Foundation is a non-profit corporation.
Please donate.

Last updated on Nov 27, 2010. Found a bug?

Created using Sphinx 0.6.5.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-368515-1-1.html 上篇帖子: Python 数据库开发 下篇帖子: python语法总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表