软件工程师手册/语言词典/Python
由荷兰程序员 Guido Von Rossum 创建,他曾参与过 ABC 编程语言的开发,而 ABC 本身则源自 SETL 编程语言。ABC 使用缩进表示语法作用域并提高可读性,而 SETL 则拥有列表推导式,并旨在使集合表示法和理论更加清晰。
Python 被描述为一种脚本语言,通常以解释方式运行,尽管解释器在执行前会扫描整个源代码进行解析,并在遇到语法或类型错误时停止,这可能是由于在构建具有类型限制的子节点的解析树时发生的。
入口点是在最左侧包含缩进的代码中的脚本 if 条件语句,使用全局变量 __name__,并查找值为 "__main__" 的情况。
if __name__ == "__main__":
#do program
return
将 0 赋值给 a,然后将 a 赋值给 b 的示例
a = 0
b = a
Python 不像 C++ 和 Java 等语言那样使用分号来表示语句的结束,而是使用换行符来表示语句的结束。这意味着每个语句都必须放在单独的一行。
# This is an inline comment. Everything after the # is a comment.
块注释以一对三引号 (""") 开始和结束。它们可以跨越多行。
"""
This is a
block comment
"""
变量在首次赋值时声明。Python 是动态类型的,因此变量的类型取决于其初始值。
# integer variable:
a = 0
# float variable
c = 0.0
# string variable
d = 'Hello, world!'
可以使用 "def" 关键字声明函数,然后是函数名。函数的参数放在括号中。只有在函数作用域内的代码才会成为函数的一部分。
def myFunction(arg1, arg2):
# function start
# function end
可以使用星号创建具有未知数量参数的函数。
def myFunction(*args):
# function start
# function end
语句属于最接近的较低缩进级别的函数作用域。存在一个未命名的全局函数作用域。在任何作用域中声明的变量和函数都不能在其声明的作用域之外访问。
print("I will always be printed")
a = 1
if __name__ == "__main__":
print("I will also always be printed, and I can access a=", a)
b = 2
def f():
c = 1
f()
def g():
d = 2
def h():
e = d
x = b
g()
print("I can access b=", b, "because b belongs in a compound statement block of the same functional scope (global)")
print("and f() can also be called")
print("But c, d, e, and h() can't be accessed")
"if" 关键字表示条件语句。如果条件为真,则执行 if 语句作用域下的代码。否则,执行 else 语句作用域下的代码。
if A == B:
D = C
else:
F = E
要依次检查多个条件,可以使用 "elif" 关键字("else if" 的缩写)。
if A == B:
D = C
elif A > B:
F = E
else:
H = G
for 循环将遍历给定范围内的值。
for i in range(0, 10):
# code here
此范围包括起始值 (0) 但不包括结束值 (10),因此它将从 i = 0 到 i = 9。您还可以使用 for 循环遍历列表。
values = []
for value in values:
# code here
while 循环将循环,直到条件变为假。它将在每次循环开始时检查条件。
while i > 20:
# code here
Python 中的输出是使用内置的 print 函数完成的。print 函数会在打印后自动开始新的一行输出。
print("Hello, world!")
要打印多个项目,请用逗号分隔它们。每个项目都会自动在其之间打印一个空格。
print("hello", "world")
<描述错误处理和恢复。根据需要提供示例。>
可以像这样创建列表
# empty list
list = []
# list with values
list = [1, 2, 3]
Python 还具有 3 个内置容器:元组、集合和字典。可以通过外部库添加更多类型的容器。
<列出此语言本机提供的算法或算法列表的参考。列出如果算法不是语言的原生部分,则如何合并算法的方法。或者,如果不可用,请说明。>
垃圾回收是自动的。
<描述文件、库和部件通常如何划分和排列。>
<请包含使从其他语言切换到此语言更容易的提示。>
<列出可能有助于学习的额外书籍和文章。请包含参考书适合的读者水平。(初学者/中级/高级)>