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

2,681 阅读7分钟

众所周知,Python是一种易于使用和实现的语言,在其语法上有许多自由。这使得它甚至对初学者来说都是完美的,可以有效地设计应用程序等东西。但是,像其他语言一样,它也有一些基本的规则和规定,整个代码的运行都依赖于此。因此,在这篇文章中,我们将学习它们。这对我们的编程方面很重要。

Python和PEP8的介绍

现在,为了使事情清楚,让我们来看看Python的特点:

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

使Python与众不同的主要原因是它在一个解释器上运行。它逐行运行代码,然后进行执行。

PEP8的本质

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

  1. 模块不能有简短的小写 名字。
  2. 类名应采用CapWords风格。
  3. 大多数变量和函数的名称应该是小写的,并带有下划线。
  4. 常量应使用大写字母 - 这有助于识别它们。
  5. 在参数和操作符之间使用足够的空格,使代码更易读。

为了获得更多的PEP信息,我们可以打开Python shell,在那里输入以下命令。

输出

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. 类声明。

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 遵循同样的方法从一个字符串中检索单个字符。它们是不可改变的(不可编辑),但我们可以取回字符。在内存中,它们被存储在一个字符数组中。所以,为了获取它们,我们使用了冒号

取出字符的语法

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 中的 hashmaps。但是,它们的语法声明有很大的不同。

声明一个字典的语法

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的数字。

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

6.使用条件语句

条件语句是特殊的代码块。它们是决策性的语句,当它里面的表达式评估为真时,就执行一个代码块。我们在其中也使用冒号。它们被放在条件之后,解释器会识别出缩进的代码是在条件块之下。

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条件

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

输出

IndentationError: expected an indented block

结论

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