何时在 Python 中使用冒号 (:)?

众所周知,Python 是一种易于使用和实现的语言,其语法具有很多自由度。这使得它即使是初学者也非常适合高效设计应用程序之类的东西。但是,与其他所有语言一样,它也有一些整个代码运行和依赖的基本规则和规定。因此,在这篇文章中,我们将学习它们。这对于我们的编程方面很重要。

Python 和 PEP8 简介

现在。为了清楚起见,让我们看一下 Python 的特性。

  1. 面向对象
  2. 多范式
  3. 跨平台

python 的主要不同之处在于它在解释器上运行。这会逐行运行代码,然后执行。

PEP8 的精髓

可以说,Python 增强建议(PEP)是一本官方书籍或一套规则,告诉我们如何编写最好的 Python 代码。它还提供了一组编程时的限制或不该做的事情。其中一些如下:

  1. 模块不应有短小名称。
  2. 类名应该采用CapWords风格。
  3. 大多数变量和函数名称应为小写并带下划线。
  4. 常量应该使用 CAPITAL_WITH_UNDERSCORES 格式——这有助于识别它们。
  5. 在参数和运算符之间使用足够的空间以使代码更具可读性。

要获取更多 PEP 信息,我们可以打开 Python shell 并在其中键入以下命令:

>>> import this

输出:

The Zen of Python, by Tim Peters
 
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Python 中冒号的重要性

因此,在某些解释性语言中,花括号并不重要。相反,我们使用“冒号”与 JavaScript 和 Ruby 等其他语言不同,Python 拥有大部分重要语法,其中冒号很重要。以下是其中的列表:

  1. 列表切片。
  2. 字符串切片。
  3. 在字典中用于插入键值对。
  4. 函数声明
  5. 循环声明
  6. 条件语句
  7. 增加函数的可读性。
  8. 类声明。

注意:列表和字符串中的索引从 0 开始。有关更多参考,请阅读这篇文章:https ://www.askpython.com/python/list/negative-indexing

1. 列表切片

列表是Python中实现和研究的重要数据结构。它就像一个动态数组,我们可以在其中插入多种数据类型的元素。在列表中,我们使用冒号来检索特定元素。他们研究索引号。因此,我们可以使用它们来获取有关索引位置的元素。

获取元素的语法:

a = [0 : n -1] # indexing in lists starts from zero till n -1

例子:

>>> a = [5, -9, 8, 33, 4, 64] # declaring a list
>>> a[:] # retrieving all the elements
[5, -9, 8, 33, 4, 64]
>>> a[2:3] # retrieing the elements from third index and ignoring the fourth index
[8]
>>> a[4:] # retrieving the elements above fifth till last index
[4, 64]
>>> a[1:] # retrieving the elements above second index
[-9, 8, 33, 4, 64]

2. 字符串切片

字符串是 Python 中的另一种数据类型,它可以将一长串句子括在引号内。在旧的编程范例中,字符串是字符序列。Python 遵循相同的方法从字符串中检索单个字符。它们是不可变的(不可编辑),但我们可以获取字符。在内存中,它们存储在字符数组中。因此,为了得到它们,使用冒号:

另请阅读:如何在 Python 中切片字符串?

获取字符的语法:

s = [0 : n -1] # indexing in strings starts from zero till n -1

例子:

>>> s = "abcdefgh"
>>> s[2:4] # fetch characters from third till fifth index
'cd'
>>> s[::-1] # reverse the string
'hgfedcba'
>>> s[:-2] # print the string ignoring the second and last characters
'abcdef'
>>> s[1:5# print the elements from second till
'bcde'

3.在字典中用于插入键值对

Python 中的字典是键值对的无序集合。它们是基本数据结构之一,例如 Java 中的哈希图。但是,它们的语法声明有很大不同。

声明字典的语法:

d = {key_1 : value_1, key_2 : value_2, key_3 : value_3, ..., key_N : value_N}

正如我们所看到的,冒号是这里的一个重要实体。没有这个符号,Python 中就无法存在字典。

例子:

>>> d = {"a" : 1, "b" : 2, "c" : 3, "d" : 4} # declaring a dictionary

4. 函数声明

函数的一般语法涉及冒号。这是因为 Python 使用缩进(空代码空间)而不是大括号“{ }”来保留函数下的代码块。在函数和括号之后,我们需要使用冒号开始在函数内部编写代码。

句法:

def func_name(param_1, .., param_2): ->  colon used here
    # fuction code lies below colon and is considered as its code body
 
    return # value

5. 循环声明

Python 中的循环是连续执行一段代码直到该代码满足特定条件的语句。因此,要执行 for() 或 while() 循环,我们使用冒号。当且仅当采用适当的缩进时,冒号下的所有代码都被视为循环的一部分。

例子:

for i in range(4): # -> colon is used here
    print(i)
 
 
#Output:
# 0
# 1
# 2
# 3

因此,正如我们所看到的,冒号符号下的代码给出了从 0 到 3 的数字。我们可以以同样的方式在 while 循环中使用它。

i = 0
while i != 5: # -> colon is used here
    i += 1
    print(i)
# output
# 1
# 2
# 3
# 4
# 5

6. 使用条件语句

条件语句是特殊的代码块。它们是决策语句,当代码块中的表达式计算结果为 true 时执行该代码块。我们也在其中使用冒号。它们被放置在条件之后,解释器识别出缩进的代码位于条件块下。

if condition: # -> colon is used here
    # code body
 
else: # -> colon is used here
    # code body

7.增加函数可读性

这在某种程度上推进了 python 主题。初学者可以直接忽略这一点。就像在静态类型编程语言中,我们需要指定变量和函数的数据类型和返回类型一样,Python 也允许这样做,但语法不同:

假设我们声明了一个函数,并且需要显式提及数据类型。我们可以通过一个简单的方法来做到这一点:

  1. 在函数内部声明参数时,请使用带有冒号的数据类型,然后是参数名称。
  2. 然后,要提及函数返回的内容,请使用箭头运算符 (->) 在括号后插入数据类型。
def add(a : int, b : int)->int:
    c = a + b
    print(c)
    return c
 
add(3, 4)
 
# outputs 7

冒号位于参数名称及其数据类型之间。

8. 用于声明类

Python 是一种 OOP 语言。因此,要声明类,我们需要使用冒号。冒号决定变量的范围和类的功能。这是为了向解释器发出信号,表明类的实体位于冒号下方。这是一个简单的例子:

代码:

class Sample:
    def __init__(self, a, b):
        self.a = a
        self.b = b
         
    def printVal(self):
        print(self.a, self.b)
         
sample = Sample(3, 4)
sample.printVal() 
 
# outputs: 3, 4

所以,在这个类中,我们插入一个冒号。之后缩进四个空格。这将确保一切都在类范围内。因此,为了让事情更清楚,我们可以声明构造函数__init__()方法和printVal()方法。

使用冒号时出现的错误和常见错误

当我们声明一个函数、一个循环或任何需要冒号的代码块时,我们需要遵循一条重要的规则。如果我们不这样做,就会出错,代码最终会出错。

当我们给出冒号时,请始终记住给出缩进/空格。这定义了该父代码下的进一步代码的范围。

现代代码编辑器具有内置的自动缩进设置。但是,在使用记事本时,我们需要更加小心。

示例 – 使用函数:

def sayHello():
print("Hello world")
 
sayHello()

示例 – for 循环:

for i in range(0, 3):
     
print(I)

示例 – 如果有条件:

if (i % 2 == 0):
print(i)

输出:

IndentationError: expected an indented block

结论

所以,这样,我们就可以认为冒号是Python语法树的一个重要部分或者说是核心部分。请记住,如果我们在代码中遗漏了哪怕一个冒号,我们就会遇到很大的麻烦。所以,如果你是Python编程的新手,我建议你仔细阅读这篇文章。