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!")

我们假设您在 PATH 变量中设置了 Python 解释器路径。现在,让我们尝试按如下方式运行该程序 -

$ 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 标识符

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

Python 不允许在标识符中使用标点符号,例如 @、$ 和 %。

Python 是一种区分大小写的编程语言。因此,Manpower和manpower在 Python 中是两个不同的标识符。

以下是 Python 标识符的命名约定 -

  • Python 类名称以大写字母开头。所有其他标识符都以小写字母开头。

  • 以单个前导下划线开头的标识符表示该标识符是私有标识符。

  • 以两个前导下划线开头的标识符表示强私有标识符。

  • 如果标识符也以两个尾部下划线结尾,则该标识符是语言定义的特殊名称。

Python 保留字

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

和 作为 断言
休息 班级 继续
定义 德尔 埃利夫
别的 除了 错误的
最后 为了 从
全球的 如果 进口
在 是 拉姆达
没有任何 非本地的 不是
或者 经过 增加
返回 真的 尝试
尽管 和 屈服

Python 行和缩进

Python 编程不提供大括号来指示类和函数定义或流程控制的代码块。代码块由严格执行的行缩进表示。

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

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 多行语句

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 完全忽略它。

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

等待用户

程序的以下行显示提示,语句为“Press the Enter key to exit”,并等待用户采取操作 -

#!/usr/bin/python

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

这里,“\n\n”用于在显示实际行之前创建两个新行。一旦用户按下该键,程序就结束。这是一个很好的技巧,可以让控制台窗口保持打开状态,直到用户完成应用程序。

单行多个语句

分号 (;) 允许在一行上出现多个语句,因为这两个语句都不会启动新的代码块。这是使用分号的示例片段 -

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

多个语句组作为套件

组成单个代码块的一组单独语句在 Python 中称为套件。复合或复杂的语句,例如 if、while、def 和 class 需要标题行和语句组。

标题行以语句开始(使用关键字)并以冒号 (:) 终止,后面跟着一行或多行组成该语句组。例如 -

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 概念之后再研究。