对于基于产品的公司,他们需要优秀的编码人员,而且一个人需要清除“竞争编码”阶段,才能进入采访阶段。竞争性编码就是这样一种平台,它将同时测试您的思维能力和速度。
Who should read this?
Any programmer who still hasn't tried python for
Competitive Coding MUST give this article a read.
This should clear up any doubts one has before
shifting to python.No matter how comfortable
a programming language may seem to you right now
Python is bound to feel even better.
Python has a tendency of sticking to people
like a bad habbit !!
SPEED是Python首屈一指的一个因素。与传统的编程语言(例如C,C++, Java)相比,要键入的代码量大大减少。另一个最重要的一点是, Python为用户提供了各种各样的功能,程序包和库,这些功能,程序包和库起到了程序员思维能力的补充作用。
最终,关于Python的最好的事情就是它非常简单,我们不需要在诸如输入,输出等琐碎的事情上浪费很多时间。它有助于将我们的注意力转移到当前的问题上。
在这里,我将列出一些我最喜欢的Python功能,我相信这些功能会鼓励您开始尝试使用Python进行竞争编码。
- 变量独立
Python不需要我们在使用变量之前先声明变量及其数据类型。只要范围在硬件的合理范围内(即无需担心整数和长整数),这也为我们提供了范围的灵活性。类型转换在内部得到了完美的结果。Amazing Fact !! For nested loops in python we can use the same variable name in both inner and outer for-loop variables without fear of inconsistent data or any errors !!
- 常用功能,如排序,最小,最大,计数等。
最小/最大函数帮助我们从列表中查找最小/最大元素。排序函数使我们可以对列表进行排序,计数函数可以帮助我们计算列表中特定元素的出现次数。
最好的事情是,我们可以放心, Python库对上述每个操作都使用了尽可能最佳的算法。例如,排序函数是一种非常特殊的排序算法,称为TIMSORT ,其最坏情况下的时间复杂度为O(n log n),这是排序算法可以提供的最佳时间复杂度。
参考: Python排序算法# Python code to demonstrate working of min(), # max(), sorted() and 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)
- Python的列表结合了数组和链表的最佳方面。
Python列表提供了删除特定元素的独特功能,同时以连续的方式保持内存位置。此功能使“链接列表”的概念无效。就像STEROIDS上的链表一样!此外,插入可以在任何期望的位置进行。# Python code to demonstrate list operations arr = [00, 11, 22, 33, 44, 55, 66, 77, 88, 99] # deletion via index position del arr[5] print(arr) # deletion via specifying particular element arr.remove(22) print(arr) # insertion at any arbitrary position arr[-1] = "A random number" print(arr) # concept of sub-lists 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]
- 独特的列表操作–回溯,子列表。
如果我们不确定列表的大小,则可以使用索引位置-1来访问最后一个元素。类似地,-2可用于倒数第二个元素,依此类推。这样我们就可以追溯列表。同样,我们不必指定任何特定的列表大小,因此它也像动态分配数组一样工作。
如上例所示,无需遍历列表即可提取列表的特定部分。关于列表的一个非常令人惊讶的事实是它可以容纳不同的数据类型。列表曾经是数据元素的同质集合的日子已经一去不复返了!! - 函数可以返回多个值。
通常,其他编程语言中的函数只能返回一个值,但是在Python,我们可以返回多个值!如以下代码段所示。# Python code to demonstrate that a function # can easily return multiple values. 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
- 函数的参数数量灵活。
参数的函数可以以列表的形式,其大小可能会有所不同,每次我们需要调用函数时传递。在上面的示例中,我们首先使用2个参数调用该函数,然后使用5个参数调用该函数! - 如果不是,则for循环对用户更友好。
- 代码缩进。
Python代码块根据其缩进进行区分。这提供了更好的代码可读性,并向我们灌输了缩进代码的良好习惯。 - 集合和字典的概念。
Set是可迭代,可变且没有重复元素的无序集合数据类型。它就像一个不允许重复元素的列表。
字典就像一个列表,其值可以通过用户定义的键来访问,而不是常规的数字索引值。# Python code to demonstrate use of dictionaries # and sets. a = {'a','b','c','d','e','a'} # the second 'a' is dropped to avoid repetition 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
- 健壮的输入语句。
在竞争性编码中,我们经常需要将’n’个以空格分隔的整数作为输入,最好将它们保存在列表/数组中。 Python提供了在一行代码中完成所有操作的功能!!# Python code to demonstrate how to take space # separated inputs. arr = [int(a) for a in input().strip().split(' ')] print(arr)
All the above mentioned features are just a taste of Python’s real power. Python gives us plenty of reasons to stick around and its not just in the field of competitive coding. Programmers from every department be it Web Development, Machine Learning, Data Science etc are mostly shifting to python. In today’s industry even Companies are shifting their code base to python and so its better to go with the flow and learn python as early as possible and explore its unending pool of cool features !!
如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。
Python的if-else语句使我们可以搜索列表中的特定元素,而无需遍历整个列表并检查每个元素。
某些编程语言具有foreach循环的概念,该概念与for循环略有不同。它允许我们遍历一个列表,其中循环变量一个接一个地接受列表值。 Python将foreach循环概念并入了for循环本身。
# Python code to demonstrate quick searching
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# searching made easy
if 3 in arr:
print("YES")
else:
print("NO")
#foreach loop
for i in arr:
print(i,end = ' ')
输出:
YES
1 2 3 4 5 6 7 8 9