Python 简明教程
Python - Syntax
Python - Syntax
Python 语法定义了一组规则,用于创建 Python 程序。Python 编程语言语法与 Perl、C 和 Java 编程语言有许多相似之处。但是,这些语言之间有一些明确的差异。
The Python syntax defines a set of rules that are used to create a Python Program. The Python Programming Language Syntax has many similarities to Perl, C, and Java Programming Languages. However, there are some definite differences between the languages.
First Python Program
让我们以 Python 编程的两种不同模式执行一个 Python program to print "Hello, World!" 。(a) 交互模式编程 (b) 脚本模式编程。
Let us execute a Python program to print "Hello, World!" in two different modes of Python Programming. (a) Interactive Mode Programming (b) Script Mode Programming.
Python - Interactive Mode Programming
我们可以通过在命令提示符下键入 python 从命令行调用一个 Python interpreter ,如下所示 -
We can invoke a Python interpreter from command line by typing python at the command prompt as following −
$ python3
Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
此处 >>> 表示一个 Python 命令提示符,您可以在其中键入命令。让我们在 Python 提示符下键入以下文本并按 Enter -
Here >>> denotes a Python Command Prompt where you can type your commands. Let’s type the following text at the Python prompt and press the Enter −
>>> print ("Hello, World!")
如果您正在运行较早版本的 Python,如 Python 2.4.x,那么您需要使用不带括号的 print 语句,如 print "Hello, World!" 中所示。但在 Python 3.x 版本中,它会产生以下结果 -
If you are running older version of Python, like Python 2.4.x, then you would need to use print statement without parenthesis as in print "Hello, World!". However in Python version 3.x, this produces the following result −
Hello, World!
Python - Script Mode Programming
我们可以使用一个脚本参数来调用 Python interpreter ,该参数开始执行脚本并持续到脚本完成。当脚本完成时,解释器不再处于活动状态。
We can invoke the Python interpreter with a script parameter which begins the execution of the script and continues until the script is finished. When the script is finished, the interpreter is no longer active.
让我们在脚本中编写一个简单的 Python 程序,这是一个简单的文本文件。Python 文件的扩展名为 .py 。在 test.py 文件中键入以下源代码 -
Let us write a simple Python program in a script which is simple text file. Python files have extension .py. Type the following source code in a test.py file −
print ("Hello, World!")
我们假设您有 Python 解释器 path set in PATH variable 。现在,让我们尝试运行此程序,如下所示 -
We assume that you have Python interpreter path set in PATH variable. Now, let’s try to run this program as follows −
$ python3 test.py
这会产生以下结果:
This produces the following result −
Hello, World!
让我们尝试另一种执行 Python 脚本的方法。以下是如何修改 test.py 文件 -
Let us try another way to execute a Python script. Here is the modified test.py file −
#!/usr/bin/python3
print ("Hello, World!")
我们假设您在 /usr/bin 目录中有 Python 解释器。现在,尝试运行此程序,如下所示 -
We assume that you have Python interpreter available in /usr/bin directory. Now, try to run this program as follows −
$ chmod +x test.py # This is to make file executable
$./test.py
这会产生以下结果:
This produces the following result −
Hello, World!
Python Identifiers
Python 标识符是用于标识 variable 、 function 、 class 、 module 或其他对象的名称。一个标识符以字母 A 到 Z 或 a 到 z 或下划线 (_) 开头,后面跟随零个或多个字母、下划线和数字 (0 到 9)。
A Python identifier is a name used to identify a variable, function, class, module or other object. An identifier starts with a letter A to Z or a to z or an underscore (_) followed by zero or more letters, underscores and digits (0 to 9).
Python 不允许标识符中使用像 @、$ 和 % 这样的标点字符。
Python does not allow punctuation characters such as @, $, and % within identifiers.
下面是 Python 标识符的命名约定:
Here are naming conventions for Python identifiers −
-
Python Class names start with an uppercase letter. All other identifiers start with a lowercase letter.
-
Starting an identifier with a single leading underscore indicates that the identifier is private identifier.
-
Starting an identifier with two leading underscores indicates a strongly private identifier.
-
If the identifier also ends with two trailing underscores, the identifier is a language-defined special name.
Python Reserved Words
下表显示了 Python 关键词。这些是保留字,你不能将它们用作常量或变量或任何其他标识符名称。所有 Python 关键词仅包含小写字母。
The following list shows the Python keywords. These are reserved words and you cannot use them as constant or variable or any other identifier names. All the Python keywords contain lowercase letters only.
and |
as |
assert |
break |
class |
continue |
def |
del |
elif |
else |
except |
False |
finally |
for |
from |
global |
if |
import |
in |
is |
lambda |
None |
nonlocal |
not |
or |
pass |
raise |
return |
True |
try |
while |
with |
yield |
Python Lines and Indentation
Python 编程不提供大括号来指示类和函数定义或流控制的代码块。代码块由 line indentation 表示,这是严格执行的。
Python programming provides no braces to indicate blocks of code for class and function definitions or flow control. Blocks of code are denoted by line indentation, which is rigidly enforced.
缩进中的空格数是可变的,但块中的所有语句都必须缩进相同数量。例如:
The number of spaces in the indentation is variable, but all statements within the block must be indented the same amount. For example −
if True:
print ("True")
else:
print ("False")
但是,以下块会生成错误:
However, the following block generates an error −
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False")
因此,在 Python 中,所有用相同数量空格缩进的连续行将形成一个块。以下示例有各种语句块:
Thus, in Python all the continuous lines indented with same number of spaces would form a block. The following example has various statement blocks −
import sys
try:
# open file stream
file = open(file_name, "w")
except IOError:
print "There was an error writing to", file_name
sys.exit()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
file_text = raw_input("Enter text: ")
if file_text == file_finish:
# close the file
file.close
break
file.write(file_text)
file.write("\n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
print "Next time please enter something"
sys.exit()
try:
file = open(file_name, "r")
except IOError:
print "There was an error reading file"
sys.exit()
file_text = file.read()
file.close()
print file_text
Python Multi-Line Statements
Python 中的语句通常以新行结束。但是,Python 允许使用行延续字符 (\) 来表示该行应该继续。例如:
Statements in Python typically end with a new line. Python does, however, allow the use of the line continuation character (\) to denote that the line should continue. For example −
total = item_one + \
item_two + \
item_three
包含在 []、{} 或 () 括号中的语句不需要使用行延续字符。例如,以下语句在 Python 中运行良好:
Statements contained within the [], {}, or () brackets do not need to use the line continuation character. For example following statement works well in Python −
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
Quotations in Python
Python 接受单引号 (')、双引号 (") 和三引号 (''' 或 """) 表示字符串文字,只要同类型的引号开始和结束字符串即可。
Python accepts single ('), double (") and triple (''' or """) quotes to denote string literals, as long as the same type of quote starts and ends the string.
三引号用于将字符串跨越多行。例如,以下是合法的:
The triple quotes are used to span the string across multiple lines. For example, all the following are legal −
word = 'word'
print (word)
sentence = "This is a sentence."
print (sentence)
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""
print (paragraph)
Comments in Python
注释是 Python 源代码中面向程序员的解释或注解。添加它们的目的是为了使人类更容易理解源代码,而 Python 解释器忽略它们。
A comment is a programmer-readable explanation or annotation in the Python source code. They are added with the purpose of making the source code easier for humans to understand, and are ignored by Python interpreter
与大多数现代语言一样,Python 支持单行(或行尾)注释和多行(块)注释。 Python comments 与 PHP、BASH 和 Perl 编程语言中的注释非常相似。
Just like most modern languages, Python supports single-line (or end-of-line) and multi-line (block) comments. Python comments are very much similar to the comments available in PHP, BASH and Perl Programming languages.
不在字符串文字中的井号 () 开始注释。 之后和该物理行末尾之前的所有字符都是注释的一部分,Python 解释器忽略它们。
A hash sign (#) that is not inside a string literal begins a comment. All characters after the # and up to the end of the physical line are part of the comment and the Python interpreter ignores them.
# First comment
print ("Hello, World!") # Second comment
这会产生以下结果:
This produces the following result −
Hello, World!
你可以在语句或表达式后在同一行键入注释:
You can type a comment on the same line after a statement or expression −
name = "Madisetti" # This is again comment
您可以按如下方式注释多行 −
You can comment multiple lines as follows −
# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.
Python 解释器也忽略以下三引号字符串,且它可用作多行注释:
Following triple-quoted string is also ignored by Python interpreter and can be used as a multiline comments:
'''
This is a multiline
comment.
'''
Using Blank Lines in Python Programs
可能带有注释且仅包含空白的一行称为空白行,Python 完全忽略它。
A line containing only whitespace, possibly with a comment, is known as a blank line and Python totally ignores it.
在交互式解释器会话中,您必须输入一个空物理行来终止多行语句。
In an interactive interpreter session, you must enter an empty physical line to terminate a multiline statement.
Waiting for the User
程序的以下行显示提示,“按回车键退出”的语句,并等待用户执行操作 −
The following line of the program displays the prompt, the statement saying “Press the enter key to exit”, and waits for the user to take action −
#!/usr/bin/python
raw_input("\n\nPress the enter key to exit.")
在此处,使用“\n\n”在显示实际行之前创建两行新行。当用户按下该键时,该程序将结束。这是保持控制台窗口开放直至用户使用完毕应用程序的一个不错技巧。
Here, "\n\n" is used to create two new lines before displaying the actual line. Once the user presses the key, the program ends. This is a nice trick to keep a console window open until the user is done with an application.
Multiple Statements on a Single Line
分号 ( ; ) 允许在单个行中出现多条语句,前提是这些语句均未启动新的代码块。以下是使用分号的示例代码段 −
The semicolon ( ; ) allows multiple statements on the single line given that neither statement starts a new code block. Here is a sample snip using the semicolon −
import sys; x = 'foo'; sys.stdout.write(x + '\n')
Multiple Statement Groups as Suites
在 Python 中,由单个语句组成的组称为 suites 。if、while、def 和 class 等复合或复杂的语句需要标头行和套件。
A group of individual statements, which make a single code block are called suites in Python. Compound or complex statements, such as if, while, def, and class require a header line and a suite.
标头行以语句(带有关键字)开头并以冒号 ( : ) 结束,其后是构成套件的一行或多行。例如 −
Header lines begin the statement (with the keyword) and terminate with a colon ( : ) and are followed by one or more lines which make up the suite. For example −
if expression :
suite
elif expression :
suite
else :
suite
Command Line Arguments in Python
许多程序都可以运行,为您提供有关如何运行它们的一些基本信息。Python 允许您使用 -h 来执行此操作 −
Many programs can be run to provide you with some basic information about how they should be run. Python enables you to do this with -h −
$ python3 -h
usage: python3 [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
[ etc. ]
您还可以对脚本进行编程,使其能够接受各种选项。 Command Line Arguments 是一项高级主题,一旦您完成学习 Python 概念的其余部分,应当在稍后进行学习。
You can also program your script in such a way that it should accept various options. Command Line Arguments is an advanced topic and should be studied a bit later once you have gone through rest of the Python concepts.