📜  为什么Python最适合竞争编码?

📅  最后修改于: 2021-06-26 18:18:19             🧑  作者: Mango

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

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进行竞争编码。

  1. 变量独立
    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 !!
  2. 常用功能,如排序,最小,最大,计数等。
    最小/最大函数帮助我们从列表中查找最小/最大元素。排序函数使我们可以对列表进行排序,计数函数可以帮助我们计算列表中特定元素的出现次数。
    最好的事情是,我们可以放心, 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)
    
  3. 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]
    
  4. 独特的列表操作–回溯,子列表。
    如果我们不确定列表的大小,则可以使用索引位置-1来访问最后一个元素。类似地,-2可用于倒数第二个元素,依此类推。这样我们就可以追溯列表。同样,我们不必指定任何特定的列表大小,因此它也像动态分配数组一样工作。
    如上例所示,无需遍历列表即可提取列表的特定部分。关于列表的一个非常令人惊讶的事实是它可以容纳不同的数据类型。列表曾经是数据元素的同质集合的日子已经一去不复返了!!
  5. 函数可以返回多个值。
    通常,其他编程语言中的函数只能返回一个值,但是在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
    
  6. 函数的参数数量灵活。
    参数的函数可以以列表的形式,其大小可能会有所不同,每次我们需要调用函数时传递。在上面的示例中,我们首先使用2个参数调用该函数,然后使用5个参数调用该函数!
  7. 如果不是,则for循环对用户更友好。
  8. 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 
    

  9. 代码缩进。
    Python代码块根据其缩进进行区分。这提供了更好的代码可读性,并向我们灌输了缩进代码的良好习惯。
  10. 集合和字典的概念。
    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
    
  11. 健壮的输入语句。
    在竞争性编码中,我们经常需要将’n’个以空格分隔的整数作为输入,最好将它们保存在列表/数组中。 Python提供了在一行代码中完成所有操作的功能!!
    # Python code to demonstrate how to take space
    # separated inputs.
    arr = [int(a) for a in input().strip().split(' ')]
      
    print(arr)
    

    如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。