这是Python教程。在本教程中,您将学习Python语言的基础知识和更高级的主题。
目录

  • Python语言
  • 交互式Python
  • 关键词
  • 文件
  • 面向对象编程
  • 异常
  • 迭代

  • Python 关键词

    在Python编程教程的这一部分,我们将用Python语言讲解关键词。

    Python 关键字

    Python 关键字是一个特殊的词汇,构成了 Python 的词汇表 语言。这是一个保留词,不能用作标识。

    Python 关键词列表

    以下是 Python 编程语言的关键词列表。

    False               def                 if                  raise
    None                del                 import              return
    True                elif                in                  try
    and                 else                is                  while
    as                  except              lambda              with
    assert              finally             nonlocal            yield
    break               for                 not
    class               from                or
    continue            global              pass

    Python 是一种动态语言。它会随着时间变化。关键词列表 未来可能会有所变化。

#!/usr/bin/env python

# keywords.py

import sys
import keyword

print("Python version: ", sys.version_info)
print("Python keywords: ", keyword.kwlist)

该脚本打印 Python 版本及其实际的关键词列表。

$ ./keywords.py
Python version:  sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)
Python keywords:  ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class',
'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global',
'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
'try', 'while', 'with', 'yield']

输出显示了Python 3.5.2的Python关键词列表。

Python 控制流程

该关键词是控制 节目流程。while循环内的语句被执行 直到表达式被取值为。whileFalse

#!/usr/bin/env python

# while_kwd.py

numbers = [22, 34, 12, 32, 4]
mysum = 0

i = len(numbers)

while i != 0:

   i -= 1
   mysum = mysum + numbers[i]

print("The sum is:", mysum)

在我们的脚本中,我们想计算数字列表中所有值的总和。 我们利用环路。我们决定名单的长度。 循环反复执行,直到 等于零。在循环主体中,我们递减计数器并计算 价值之和。

whilewhilei

$ ./while_kwd.py
The sum is: 104

所有价值的总和是104。

关键词用于必要时中断循环。break

#!/usr/bin/env python

# break_kwd.py

import random

while True:

    val = random.randint(1, 30)
    print(val, end=" ")

    if val == 22:
        break

print()

在我们的例子中,我们打印随机整数。如果该数字等于22, 循环被关键字打断。break

$ ./break_kwd.py
14 14 30 16 16 20 23 15 17 22

下一个例子展示了关键词。它被使用 这样可以中断当前的循环,而不是跳出整个循环。 它开启了一个新的循环。continue

#!/usr/bin/env python

# continue_kwd.py

num = 0

while num < 1000:

      num = num + 1

      if num % 2 == 0:
         continue

      print(num, end=" ")

在示例中,我们打印所有小于1000且不能为的数字 除以数2,不加余数。

该关键词是一个通用控制流关键词。它习惯于 确定将执行哪些语句。if

#!/usr/bin/env python

# if_kwd.py

age = 17

if age > 18:

    print("Driving licence issued")
else:

    print("Driving licence not permitted")

关键词测试的是该人是否超过18岁。 如果条件满足,驾驶执照将被发放。关键词是可选的。执行 else 关键字后的语句, 除非条件为 。ifelseTrue

接下来我们看看如何用关键词组合这些语句。elif

#!/usr/bin/env python

# elif_kwd.py

name = "Luke"

if name == "Jack":
    print("Hello Jack!")

elif name == "John":
    print("Hello John!")

elif name == "Luke":
    print("Hello Luke!")

else:
    print("Hello there!")

如果第一个测试的值为 ,我们继续进行下一个测试。 如果没有测试是 ,则执行 else 语句。

FalseTrue

$ ./elif_kwd.py
Hello Luke!

该关键词用于遍历 收集以使其出现在容器中。for

#!/usr/bin/env python

# for_kwd.py

lyrics = """\
Are you really here or am I dreaming
I can't tell dreams from truth
for it's been so long since I have seen you
I can hardly remember your face anymore
"""


for i in lyrics:

    print(i, end=" ")

在示例中,我们有一个变量,其曲子的序列。 我们会逐字符迭代文本并打印文本。 语句中的逗号防止将每个字符打印到新行。lyricsprint

$ ./for_kwd.py
A r e   y o u   r e a l l y   h e r e   o r   a m   I   d r e a m i n g
I   c a n ' t   t e l l   d r e a m s   f r o m   t r u t h
f o r   i t ' s   b e e n   s o   l o n g   s i n c e   I   h a v e   s e e n   y o u
I   c a n   h a r d l y   r e m e m b e r   y o u r   f a c e   a n y m o r e

Python 布尔表达式

首先,我们引入与布尔值和表达式相关的关键词:,,, 和 .isorandnot

#!/usr/bin/env python

# objects.py

print(None == None)
print(None is None)

print(True is True)

print([] == [])
print([] is [])

print("Python" is "Python")

操作员测试相等性。关键词 物体身份测试。无论我们谈论的是同一个物体。 注意,多个变量可能指向同一个对象。==is

$ ./objects.py
True
True
True
True
False
True

结果可能会让你感到意外。在 Python 语言中,只有 一个,一个物体。这就是为什么 与 相同且 。无论如何,只有一个真理存在。 空列表等于另一个空列表;但他们确实如此 不是完全一样。Python 把它们放在两个不同的内存位置。它们是两个截然不同的对象。 因此,关键词是返回 。另一方面,返回 。这是因为优化。如果两个字符串文字为 相等时,它们被放置在相同的内存位置。字符串是不可变的 因此,不会造成伤害。NoneTrueTrueTrue[][]False"Python" is "Python"True

该关键词否定了布尔值。not

#!/usr/bin/env python

# not_kwd.py

grades = ["A", "B", "C", "D", "E", "F"]

grade = "L"

if grade not in grades:
    print("unknown grade")

在我们的例子中,我们测试成绩值是否来自 可能的成绩列表。

$ ./not_kwd.py
unknown grade

如果所有条件都属于 必须满足布尔表达式。and

#!/usr/bin/env python

# and_kwd.py

sex = "M"
age = 26

if age < 55 and sex == "M":
    print("a young male")

在我们的例子中,我们测试是否满足两个条件。弦 如果变量小于 且 ,则 会被打印到控制台上 变量等于 。"a young male"age55sex"M"

$ ./and_kwd.py
a young male

如果必须满足至少一个条件,则使用该关键词。or

#!/usr/bin/env python

# or_kwd.py

name = "Jack"

if (name == "Robert" or name == "Frank" or name == "Jack"
      or name == "George" or name == "Luke"):
    print("This is a male")

如果至少有一个表达式为真,则执行 print 语句。

当我们用Python编程语言和/或关键词工作时,简称 电路评估会进行。短路评估意味着第二个 只有当第一个论元不足以确定 表达式的值:当 和 的第一个参数值为假时, 总值必须为假;当 或 的第一个论点被评为真时, 总值必须是真实的。

以下是一个典型例子。

#!/usr/bin/env python

# short_circuit.py

x = 10
y = 0

if (y != 0 and x/y < 100):
    print("a small value")

表达式的第一部分被评估为假。第二部分 表达式不被取值。否则,我们会得到一个 。ZeroDivisionError

Python 模块

以下关键词用于模块。模块是我们 整理我们的Python代码。

该关键词用于导入其他模块 变成一个Python脚本。import

#!/usr/bin/env python

# import_kwd.py

import math

print(math.pi)

我们使用关键字将数学模块导入到的命名空间中 我们的剧本。我们打印PI值。import

如果我们想给一个模 a 表示,我们使用关键字 不同的别名。as

#!/usr/bin/env python

# as_kwd.py

import random as rnd

for i in range(10):
    print (rnd.randint(1, 10), end=" ")

print()

在这种情况下,我们导入随机模。我们打印十个随机的 整数。我们给随机模赋予一个不同的别名,即 。在脚本中,我们引用 该模块 新化名。rnd

$ ./as_kwd.py
1 2 5 10 10 8 2 9 7 2

该关键词用于导入特定 变量、类或模块中的函数。from

#!/usr/bin/env python

# from_kwd.py

from sys import version

print(version)

从模块导入变量。如果我们 如果想打印,我们不需要使用模块名。版本 变量是直接导入到我们的命名空间的,我们可以直接引用它。sysversion

$ ./from_kwd.py
3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]

Python 函数

这里我们描述与函数相关的关键词。 该关键词用于创建新定义的用户 功能。函数是我们组织代码的对象。def

#!/usr/bin/env python

# def_kwd.py

def root(x):

    return x * x

a = root(2)
b = root(15)

print(a, b)

这个例子展示了一个新的简单函数。该函数计算 一个数字的平方。关键在于 与函数定义相关联;它从以下 函数,返回一个值。然后将该值赋予变量和。returnab

关键词创建了一个新的匿名函数。 匿名函数不绑定特定名称。lambda

#!/usr/bin/env python

# lambda_kwd.py

a = lambda x: x * x

for i in (1, 2, 3, 4, 5):

    print(a(i), end=" ")

print()

正如你在前面的例子中看到的,我们不会创建一个新的 函数与关键词。相反,我们选择了 即时使用内联功能。def

$ ./lambda_kwd.py
1 4 9 16 25

如果我们想访问函数外定义的变量,我们使用关键字。global

#!/usr/bin/env python

# global_kwd.py

x = 15

def function():

    global x
    x = 45

function()
print(x)

通常,在函数内赋值变量后,我们会创建一个新的本地变量 变量,仅在该函数中有效。但如果我们使用全局 关键词是,我们在函数定义之外更改一个变量。x

$ ./global_kwd.py
45

Python 例外

接下来我们处理与例外处理相关的关键词。

$ cat films
Fargo
Aguirre, der Zorn Gottes
Capote
Grizzly man
Notes on a scandal

这是一个包含一些电影标题的文件。在代码示例中, 我们要读它。

#!/usr/bin/env python

# try_except_finally.py

f = None

try:

    f = open('films', 'r')

    for i in f:

        print(i, end="")

except IOError:

    print("Error reading file")

finally:

    if f:
        f.close()

我们试图阅读电影档案。如果没有例外,我们会打印内容 文件传到控制台。可能有例外。例如,如果我们 提供了错误的文件名。在这种情况下,会提出例外。关键词捕捉到 异常,并执行其代码块。关键词是 最终总是被处决。我们用它来清理资源。IOErrorexceptfinally

在下一个例子中,我们将展示如何创建用户自定义异常 使用关键词。raise

#!/usr/bin/env python

# raise_kwd.py

class YesNoException(Exception):

   def __init__(self):

       print('This is not a yes or no answer')


answer = 'y'

if (answer != 'yes' and answer != 'no'):
    raise YesNoException

else:
    print('Correct value')

在示例中,我们只期望有是/否值。至于其他可能性, 我们提出例外。

$ ./raise_kwd.py
This is not a yes or no answer
Traceback (most recent call last):
  File "./raise_kwd.py", line 15, in <module>
    raise YesNoException
__main__.YesNoException

其他关键词

关键词是删除对象。del

#!/usr/bin/env python

# del_kwd.py

a = [1, 2, 3, 4]

print(a)
del a[:2]
print(a)

在我们的例子中,我们有一个四个整数的列表。我们删除了 名单上的第一个号码。结果会印在控制台上。

$ ./del_kwd.py
[1, 2, 3, 4]
[3, 4]

关键词毫无作用。非常方便 关键词在某些情况下是。pass

def function():
    pass

我们有个功能。该功能尚未实现。(以后会有。) 函数的主体不能是空的。所以我们可以在这里使用通过关键字, 而不是打印类似“函数尚未实现”之类的字样。

该关键词用于调试目的。 我们可以用它来测试对我们来说显而易见的条件。例如 我们有一个计算薪资的程序。我们知道薪水不能 小于零。所以我们可以把这样的断言写入代码。如果 断言失败,翻译抱怨。assert

#!/usr/bin/env python

# assert_kwd.py

salary = 3500
salary -= 3560 # a mistake was done

assert salary > 0

在执行程序时出现了错误。薪资 变为负数。

$ ./assert_kwd.py
Traceback (most recent call last):
  File "./assert_kwd.py", line 8, in <module>
    assert salary > 0
AssertionError

脚本执行失败时,。AssertionError

该关键词用于创建新的用户定义对象。class

#!/usr/bin/env python

# class_kwd.py

class Square:

    def __init__(self, x):
        self.a = x

    def area(self):
        print(self.a * self.a)


sq = Square(12)
sq.area()

在代码示例中,我们创建一个新的类。然后我们实例化 创建一个对象。我们计算方形物体的面积。Square

关键词动态执行 Python 代码。exec

#!/usr/bin/env python

# exec_kwd.py

exec("for i in [1, 2, 3, 4, 5]: print(i, end=' ')")

我们用for循环从列表中打印五个数字;所有的 关键词。exec

$ ./exec_kwd.py
1 2 3 4 5

接下来,我们提到关键词。关键词测试 序列中是否存在一个值。in

#!/usr/bin/env python

# in_kwd.py

print(4 in (2, 3, 5, 6))

for i in range(25):
    print(i, end=" ")

print()

在这个例子中,in 关键字测试数字 4 是否在元组中。 第二种用法是在for循环中遍历元组。内置函数返回整数 0 ..24.range

$ ./in_kwd.py
False
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

该关键词与生成器一起使用。yield

#!/usr/bin/env python

# yield_kwd.py


def gen():

    x = 11
    yield x


it = gen()

print(it.__next__())

关键词退出生成器并返回一个值。yield

$ ./yield_kwd.py
11

在Python教程的这一部分,我们已经涵盖了Python关键词。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐