Python 3 – 基本语法
Python语言与Perl、C和Java有许多相似之处,但它们之间也存在一些明显的差异。
第一个Python程序
让我们在不同的编程模式下执行程序。
交互式编程模式
在没有传递脚本文件作为参数的情况下调用解释器会带来以下提示 −
$ python
Python 3.3.2 (default, Dec 10 2013, 11:35:01)
[GCC 4.6.3] on Linux
Type "help", "copyright", "credits", or "license" for more information.
>>>
在Windows上:
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
在Python提示符下输入以下文本并按Enter键
>>> print ("Hello, Python!")
如果您在运行旧版本的Python(Python 2.x),则不需要括号 inprint 函数是可选的。这将产生以下结果 –
Hello, Python!
脚本模式编程
使用脚本参数调用解释器开始执行脚本,并持续到脚本完成。当脚本完成时,解释器不再处于活动状态。
让我们在脚本中编写一个简单的Python程序。Python文件的扩展名为 .py . 在test.py文件中输入以下源代码-
print ("Hello, Python!")
我们假设您已将Python解释器设置在了 PATH 变量中。现在,尝试按以下方式运行此程序 –
在Linux上
$ python test.py
这将产生以下结果 –
Hello, Python!
在Windows
C:\Python34>Python test.py
这将产生以下结果 –
Hello, Python!
让我们尝试另一种在Linux中执行Python脚本的方法。这是修改后的test.py文件-
#!/usr/bin/python3
print ("Hello, Python!")
我们假设您已经在/usr/bin目录中提供了Python解释器。现在,请尝试按以下方式运行此程序 –
$ chmod +x test.py # This is to make file executable
$./test.py
这将产生以下结果 –
Hello, Python!
Python标识符
Python标识符是用于标识变量、函数、类、模块或其他对象的名称。标识符以字母A到Z或a到z或下划线(_)开头,后跟零个或多个字母、下划线和数字(0到9)。
Python不允许在标识符中使用@、$和%等标点符号字符。Python是一种大小写敏感的编程语言。因此, Manpower 和 manpower 是Python中的两个不同标识符。
这是Python标识符的命名约定-
- 类名以大写字母开头。所有其他标识符以小写字母开头。
-
用单个下划线开头的标识符表示该标识符是私有的。
-
以两个下划线开头的标识符表示强类型私有标识符。
-
如果标识符以两个尾随下划线结尾,则该标识符是语言定义的专用名称。
保留字
以下列表显示了Python关键字。这些是保留字,您不能将其用作常量、变量或任何其他标识符名称。所有Python关键字仅包含小写字母。
and | exec | not |
---|---|---|
as | finally | or |
assert | for | pass |
break | from | |
class | global | raise |
continue | if | return |
def | import | try |
del | in | while |
elif | is | with |
else | lambda | yield |
except |
行和缩进
Python在类和函数定义或流程控制的代码块中不使用大括号({})来表示。代码块由行缩进表示,且缩进严格执行。
缩进中的空格数可以改变,但是块中的所有语句必须缩进相同的数量。例如−
if True:
print ("True")
else:
print ("False")
然而,以下块将生成错误−
if True:
print ("Answer")
print ("True")
else:
print "(Answer")
print ("False")
因此,在Python中,所有连续的行缩进相同的行将形成一个块。以下示例有各种语句块−
注意 − 此时请不要尝试理解逻辑。只需确保您理解了各个块,即使它们没有大括号。
#!/usr/bin/python3
import sys
file_finish = "end"
file_text = ""
contents=[]
file_name=input("Enter filename: ")
if len(file_name) == 0:
print("Please enter filename")
sys.exit()
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 = input("Enter text: ")
contents.append(file_text)
if file_text == file_finish:
# close the file
file.close()
break
print(contents)
data = ' '.join([str(elem) for elem in contents])
print(data)
file.write(data)
file.close()
file_name = 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允许使用行连续字符(\)来表示该行应该继续。例如−
total = item_one + \
item_two + \
item_three
方括号([])、花括号({})或圆括号(())中包含的语句不需要使用行连续字符。例如−
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
Python中的引号
Python接受单引号(‘)、双引号(“)和三引号(”’或”””)来表示字符串字面量,只要相同类型的引号开始和结束字符串即可。
三引号用于跨多行跨度字符串。例如,以下所有内容都是合法的−
word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""
Python中的注释
在Python中,不在字符串字面值内的井号(#)是注释的开始。#后的所有字符,直到物理行的结尾,都是注释,Python解释器将忽略它们。
#!/usr/bin/python3
# 第一个注释
print ("Hello, Python!") # 第二个注释
这将产生以下结果 −
Hello, Python!
你可以在语句或表达式之后的同一行上键入注释 −
name = "马迪塞蒂" # 这又是注释
Python没有多行注释的功能。您必须将每行单独注释,如下所示−
# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.
使用空行
只包含空白字符(有可能带有注释)的行被称为空行,Python完全忽略它们。
在交互式解释器会话中,必须输入一个空的物理行来终止多行语句。
等待用户
以下程序行显示提示并等待用户采取操作:“按回车键退出”语句−
#!/usr/bin/python3
input("\n\n按回车键退出。")
这里,“\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可以使用-h使您这样做:- h −
$ python -h
usage: python [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. ]
您也可以以这种方式编写脚本,使其可以接受各种选项。 命令行参数 是一个高级主题。让我们来了解一下。