Python 简明教程

Python - Syntax

Python - Syntax

Python 语法定义了一组规则,用于创建 Python 程序。Python 编程语言语法与 Perl、C 和 Java 编程语言有许多相似之处。但是,这些语言之间有一些明确的差异。

First Python Program

让我们以 Python 编程的两种不同模式执行一个 Python program to print "Hello, World!" 。(a) 交互模式编程 (b) 脚本模式编程。

Python - Interactive Mode Programming

我们可以通过在命令提示符下键入 python 从命令行调用一个 Python interpreter ,如下所示 -

$ 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 -

>>> print ("Hello, World!")

如果您正在运行较早版本的 Python,如 Python 2.4.x,那么您需要使用不带括号的 print 语句,如 print "Hello, World!" 中所示。但在 Python 3.x 版本中,它会产生以下结果 -

Hello, World!

Python - Script Mode Programming

我们可以使用一个脚本参数来调用 Python interpreter ,该参数开始执行脚本并持续到脚本完成。当脚本完成时,解释器不再处于活动状态。

让我们在脚本中编写一个简单的 Python 程序,这是一个简单的文本文件。Python 文件的扩展名为 .py 。在 test.py 文件中键入以下源代码 -

print ("Hello, World!")

我们假设您有 Python 解释器 path set in PATH variable 。现在,让我们尝试运行此程序,如下所示 -

$ python3 test.py

这会产生以下结果:

Hello, World!

让我们尝试另一种执行 Python 脚本的方法。以下是如何修改 test.py 文件 -

#!/usr/bin/python3

print ("Hello, World!")

我们假设您在 /usr/bin 目录中有 Python 解释器。现在,尝试运行此程序,如下所示 -

$ chmod +x test.py     # This is to make file executable
$./test.py

这会产生以下结果:

Hello, World!

Python Identifiers

Python 标识符是用于标识 variablefunctionclassmodule 或其他对象的名称。一个标识符以字母 A 到 Z 或 a 到 z 或下划线 (_) 开头,后面跟随零个或多个字母、下划线和数字 (0 到 9)。

Python 不允许标识符中使用像 @、$ 和 % 这样的标点字符。

下面是 Python 标识符的命名约定:

  1. Python 类名以大写字母开头。所有其他标识符以小写字母开头。

  2. 标识符以单个前导下划线开头表示标识符是 private 标识符。

  3. 标识符以两个前导下划线开头表示一个强 private 标识符。

  4. 如果标识符还以两个尾随下划线结尾,则标识符是 language-defined 特殊名称。

Python Reserved Words

下表显示了 Python 关键词。这些是保留字,你不能将它们用作常量或变量或任何其他标识符名称。所有 Python 关键词仅包含小写字母。

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 表示,这是严格执行的。

缩进中的空格数是可变的,但块中的所有语句都必须缩进相同数量。例如:

if True:
   print ("True")
else:
   print ("False")

但是,以下块会生成错误:

if True:
   print ("Answer")
   print ("True")
else:
   print ("Answer")
   print ("False")

因此,在 Python 中,所有用相同数量空格缩进的连续行将形成一个块。以下示例有各种语句块:

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 允许使用行延续字符 (\) 来表示该行应该继续。例如:

total = item_one + \
        item_two + \
        item_three

包含在 []、{} 或 () 括号中的语句不需要使用行延续字符。例如,以下语句在 Python 中运行良好:

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

Quotations in Python

Python 接受单引号 (')、双引号 (") 和三引号 (''' 或 """) 表示字符串文字,只要同类型的引号开始和结束字符串即可。

三引号用于将字符串跨越多行。例如,以下是合法的:

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 解释器忽略它们。

与大多数现代语言一样,Python 支持单行(或行尾)注释和多行(块)注释。 Python comments 与 PHP、BASH 和 Perl 编程语言中的注释非常相似。

不在字符串文字中的井号 () 开始注释。 之后和该物理行末尾之前的所有字符都是注释的一部分,Python 解释器忽略它们。

# First comment
print ("Hello, World!") # Second comment

这会产生以下结果:

Hello, World!

你可以在语句或表达式后在同一行键入注释:

name = "Madisetti" # This is again comment

您可以按如下方式注释多行 −

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

Python 解释器也忽略以下三引号字符串,且它可用作多行注释:

'''
This is a multiline
comment.
'''

Using Blank Lines in Python Programs

可能带有注释且仅包含空白的一行称为空白行,Python 完全忽略它。

在交互式解释器会话中,您必须输入一个空物理行来终止多行语句。

Waiting for the User

程序的以下行显示提示,“按回车键退出”的语句,并等待用户执行操作 −

#!/usr/bin/python

raw_input("\n\nPress the enter key to exit.")

在此处,使用“\n\n”在显示实际行之前创建两行新行。当用户按下该键时,该程序将结束。这是保持控制台窗口开放直至用户使用完毕应用程序的一个不错技巧。

Multiple Statements on a Single Line

分号 ( ; ) 允许在单个行中出现多条语句,前提是这些语句均未启动新的代码块。以下是使用分号的示例代码段 −

import sys; x = 'foo'; sys.stdout.write(x + '\n')

Multiple Statement Groups as Suites

在 Python 中,由单个语句组成的组称为 suites 。if、while、def 和 class 等复合或复杂的语句需要标头行和套件。

标头行以语句(带有关键字)开头并以冒号 ( : ) 结束,其后是构成套件的一行或多行。例如 −

if expression :
   suite
elif expression :
   suite
else :
   suite

Command Line Arguments in Python

许多程序都可以运行,为您提供有关如何运行它们的一些基本信息。Python 允许您使用 -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 概念的其余部分,应当在稍后进行学习。