Python - 基本语法



Python - 语法

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

第一个 Python 程序

让我们执行一个 Python 程序,以两种不同的 Python 编程模式打印“Hello, World!”。(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 关键字仅包含小写字母。

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 编程不提供大括号来指示类和函数定义或流控制的代码块。代码块由行缩进表示,这是严格执行的。

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


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

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

等待用户

程序的以下行显示提示,即“按回车键退出”的声明,并等待用户采取行动 -


#!/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 概念,就应该稍后再学习。