📜  为什么Python最适合竞争编程

📅  最后修改于: 2020-05-04 02:31:42             🧑  作者: Mango

当涉及到基于产品的公司时,他们需要优秀的编码人员,并且需要清除竞争编码才能进入面试阶段。竞争性编码就是这样一种平台,它将同时测试您的思维能力和速度。


SPEED是Python首屈一指的因素。与传统的编程语言(如C,C++,JAVA)相比,要键入的代码量大大减少。另一个最重要的一点是,Python为用户提供了各种各样的函数、程序包和库,这些函数、程序和库可作为程序员思维能力的补充。
最终,关于Python的最好的事情是它非常简单,我们不需要在诸如输入,输出等琐碎的事情上浪费太多时间。它有助于将我们的注意力转移到当前的问题上。
在这里,我将列出一些我最喜欢的Python函数,我相信这些函数会鼓励您开始尝试使用Python进行竞争编码。

1,变量独立
Python不需要我们在使用变量及其数据类型之前先声明它们。只要范围在硬件的合理范围内(即无需担心整数和长整数),这也为我们提供了范围的灵活性。类型转换在内部得到了完美的结果。

惊人的事实:对于Python中的嵌套循环,我们可以使内部和外部的变量名称相同 for循环变量,无需担心数据不一致或有任何错误!

2,常用函数,如排序,最小,最大,计数等

最小/最大函数可帮助我们从列表中查找最小/最大元素。排序函数可让我们对列表进行排序,计数函数可帮助我们计算列表中特定元素的元素发生次数。 最好的事情是,我们可以放心的是,Python库用最好的算法。例如,排序函数是一种非常特殊的排序算法,称为TIMSORT,其最坏情况下的时间复杂度为O(n log n),这是排序算法可以提供的最佳时间复杂度。

# Python代码演示min(),max(),sorted()和count()的工作方式
arr = [10, 76, 87, 45, 22, 87, 90, 87, 66, 84, 87]
print("Maximum = ",max(arr))
print("Minimum = ",min(arr))
print("The sorted array is = ",sorted(arr))
print('Number of occurrences of 87 is = ',arr.count(87))

输出:

('Maximum = ', 90)
('Minimum = ', 10)
('The sorted array is = ', [10, 22, 45, 66, 76, 84, 87, 87, 87, 87, 90])
('Number of occurrences of 87 is = ', 4)

3,Python中的列表结合了数组和链表的最佳方面。
Python列表提供删除特定元素的独特函数,同时以连续的方式保持内存位置。此函数使“链接列表”的概念无效。就像STEROIDS上的链表一样!此外,插入可以在任何期望的位置进行。

# Python代码演示列表操作
arr = [00, 11, 22, 33, 44, 55, 66, 77, 88, 99]
# 通过索引位置删除
del arr[5]
print(arr)
# 通过指定特定元素删除
arr.remove(22)
print(arr)
# 在任意位置插入
arr[-1] = "A random number"
print(arr)
# 子列表的概念
k = arr[:2]
print(k)

输出:

[0, 11, 22, 33, 44, 66, 77, 88, 99]
[0, 11, 33, 44, 66, 77, 88, 99]
[0, 11, 33, 44, 66, 77, 88, 'A random number']
[0, 11]

4,独特的列表操作–回溯,子列表。
如果我们不确定列表的大小,则可以使用索引位置-1来访问最后一个元素。同样,-2可用于倒数第二个元素,依此类推。这样我们就可以追溯列表。另外,我们不必指定任何特定的列表大小,因此它也像动态分配数组一样工作。
如上面的示例所示,可以提取列表的特定部分而不必遍历列表。关于列表的一个非常令人惊讶的事实是它可以容纳不同的数据类型。列表曾经是同类数据元素集合的日子已经一去不复返了!

5,函数可以返回多个值。
通常,其他编程语言中的函数只能返回一个值,但是在Python中,我们可以返回多个值!如以下代码段所示。

# Python代码演示一个函数可以轻松返回多个值.
def multi_return(*arr):
    k1 = arr[0]
    k2 = arr[1]
    return k1,k2
a,b = multi_return(11,22)
print(a,' ',b)
a,b = multi_return(55,66,77,88,99)
print(a,' ',b)

输出:

11 22
55 66

6,函数的参数数量灵活。
函数的参数可以列表的形式传递,每次我们需要调用函数时,列表的大小可能会有所不同。在上面的示例中,我们首先使用2个参数调用该函数,然后使用5个参数调用该函数!

7,for循环更加用户友好。
Python的if-else语句使我们可以搜索列表中的特定元素,而无需遍历整个列表并检查每个元素。
某些编程语言具有foreach循环的概念,该概念与for循环略有不同。它允许我们遍历一个列表,其中循环变量一个接一个地接受列表值。Python将foreach循环概念纳入了for循环本身。

# Python代码演示快速搜索
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 搜索变得容易
if 3 in arr:
    print("YES")
else:
    print("NO")
# foreach循环
for i in arr:
    print(i,end = ' ')

输出:

YES
1 2 3 4 5 6 7 8 9

8,代码缩进。
Python代码块根据其缩进进行区分。这提供了更好的代码可读性,并向我们灌输了缩进代码的良好习惯。

9,集合和字典的概念。
Set是可排序、可变且无重复元素的无序集合数据类型。它就像一个不允许重复元素的列表。
字典就像一个列表,它的可以通过用户定义的来访问,而不是常规的数字索引值。

# Python代码演示字典和集合的用法。
a = {'a','b','c','d','e','a'}
# 删除第二个“ a"以避免重复
print(a)
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])

输出:

{'d', 'a', 'e', 'b', 'c'}
dict['Name']:  Zara
dict['Age']:  7

 

10,健壮的输入语句。
在竞争性编码中,我们经常需要将’n’个以空格分隔的整数作为输入,最好将它们保存在列表/数组中。Python提供了在一行代码中完成所有操作的函数!

# Python代码演示如何使用空格分隔输入.
arr = [int(a) for a in input().strip().split(' ')]
print(arr)

Python为我们提供了很多坚持不懈的理由,而不仅仅是在竞争性编码领域。Web开发,机器学习,数据科学等各个部门的程序员大多转向Python。在当今的行业中,甚至公司都将其代码库转移到Python,因此最好与流程一起尽早学习Python,并探索其无穷无尽的强大函数!