Python - 语法
Python - 语法
Python 语法定义了一组用于创建 Python 程序的规则。Python 编程语言的语法与 Perl、C 和 Java 编程语言有许多相似之处。然而,这些语言之间也存在一些明显的差异。
第一个 Python 程序
让我们通过两种不同的 Python 编程模式来执行一个打印“Hello, World!”的 Python 程序。(a) 交互模式编程 (b) 脚本模式编程。
Python - 交互模式编程
我们可以通过在命令提示符下输入 python 来从命令行调用 Python 解释器,如下所示 −
$ 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 - 脚本模式编程
我们可以通过带脚本参数调用 Python 解释器来开始执行脚本,并持续执行直到脚本结束。当脚本执行完毕后,解释器将不再活跃。
让我们在一个简单的文本文件中编写一个简单的 Python 程序。Python 文件的扩展名为 .py。在 test.py 文件中输入以下源代码 −
print ("Hello, World!")
我们假设您已将 Python 解释器的路径设置在 PATH 变量中。现在,让我们尝试按以下方式运行此程序 −
$ python3 test.py
这会产生以下结果 −
Hello, World!
让我们尝试另一种执行 Python 脚本的方式。这是修改后的 test.py 文件 −
#!/usr/bin/python3
print ("Hello, World!")
我们假设您在 /usr/bin 目录下有 Python 解释器。现在,尝试按以下方式运行此程序 −
$ chmod +x test.py # 这是为了使文件可执行 $./test.py
这会产生以下结果 −
Hello, World!
Python 标识符
Python 标识符是用于标识变量、function、class、module 或其他对象的名称。标识符以字母 A 到 Z 或 a 到 z 或下划线 (_) 开头,后跟零个或多个字母、下划线和数字 (0 到 9)。
Python 不允许在标识符中使用标点符号,例如 @、$ 和 %。
Python 是一种区分大小写的编程语言。因此,Manpower 和 manpower 在 Python 中是两个不同的标识符。
以下是 Python 标识符的命名约定 −
Python class 名称以大写字母开头。所有其他标识符以小写字母开头。
标识符以单个前导下划线开头,表示该标识符是 私有 标识符。
标识符以两个前导下划线开头,表示强 私有 标识符。
如果标识符还以两个尾随下划线结尾,则该标识符是 语言定义的 特殊名称。
Python 保留字
以下列表显示了 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 行和缩进
Python 编程语言不使用大括号来表示 class 和 function 定义或流程控制的代码块。代码块通过 行缩进 来表示,并且这一规则被严格执行。
缩进中的空格数量可以变化,但块内的所有语句必须使用相同的缩进量。例如 −
if True:
print ("True")
else:
print ("False")
然而,下面的代码块会产生错误 −
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False")
因此,在 Python 中,所有使用相同空格数连续缩进的行将形成一个代码块。下面的示例包含各种语句块 −
此时不要试图理解逻辑。只需确保你理解了各种块,即使它们没有大括号。
import sys
try:
# 打开文件流
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:
# 关闭文件
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 多行语句
Python 中的语句通常以新行结束。然而,Python 允许使用行延续字符 (\) 来表示该行应继续。例如 −
total = item_one + \
item_two + \
item_three
包含在 []、{} 或 () 括号内的语句不需要使用行延续字符。例如,以下语句在 Python 中运行良好 −
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
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)
Python 中的注释
注释是程序员可读的 Python 源代码中的解释或注解。它们被添加的目的是使源代码更容易被人类理解,并且被 Python 解释器忽略。
就像大多数现代语言一样,Python 支持单行(或行尾)注释和多行(块)注释。Python 注释与 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. '''
Python 程序中使用空行
仅包含空白字符的行(可能带有注释)被称为空行,Python 完全忽略它。
在交互式解释器会话中,你必须输入一个空的物理行来终止多行语句。
等待用户
程序的以下行显示提示,即“按回车键退出”的语句,并等待用户采取行动 −
#!/usr/bin/python
raw_input("\n\nPress the enter key to exit.")
这里,"\n\n" 用于在显示实际行之前创建两行新行。一旦用户按下键,程序结束。这是一个不错的技巧,可以保持控制台窗口打开,直到用户完成应用程序的使用。
单行上的多个语句
分号 ( ; ) 允许在单行上放置多个语句,前提是这些语句都不会开始一个新的代码块。以下是使用分号的示例片段 −
import sys; x = 'foo'; sys.stdout.write(x + '\n')
多个语句组作为 Suites
一组单个语句构成了一个代码块,在 Python 中称为 suites。复合或复杂语句,如 if、while、def 和 class,需要一个头部行和一个 suite。
头部行以关键字开始语句,并以冒号 ( : ) 结束,后面跟着一个或多个行,这些行构成了 suite。例如 −
if expression : suite elif expression : suite else : suite
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. ]
您还可以以这样的方式编程您的脚本,使其能够接受各种选项。命令行参数是一个高级主题,应该在您学习完其他 Python 概念后再稍后研究。