Python 是否更适合特定的编程需求
在本文中,我们将讨论Python是否更适合特定的编程需求,比如竞技编程。
答案是肯定的;Python在编码方面更加优秀。它在短时间内用更少的行数编写代码。
基于产品的公司需要优秀的程序员,必须通过竞技编程环节才能进入面试环节。竞技编程是一个能测试你的智力和速度的平台。
速度是Python无与伦比的优势。与C、C++和JAVA等传统编程语言相比,需要输入的代码量大大减少。另一个重要的点是,Python提供了各种功能、包和库,作为程序员智力的补充。
最后,Python最好的一点是它非常容易,我们不必浪费时间在输入、输出等无关紧要的事情上。它帮助我们将注意力重新集中于问题本身。
现在我们来看一些Python的特性,这些特性肯定会吸引你尝试在竞技编程中使用Python。
变量独立性
在使用变量和数据类型之前,Python不要求我们先定义它们。这也为我们提供了范围上的灵活性,只要在硬件的合理限制范围内,我们不必担心整数和长整数等问题。在内部,类型转换会自动进行。
注意
在Python的嵌套循环中,我们可以在内部和外部的for循环变量中使用相同的变量名,而不必担心数据不一致或错误。
常见函数,如sorted、min、max、count等
min和max函数分别帮助我们确定列表中的最小和最大元素。sorted函数对列表进行排序,count函数计算列表中特定元素的出现次数。
最好的部分是,我们可以确信Python的库使用了最佳的算法来完成上述任务。例如,sorted函数是一种特殊的排序算法,称为TIMSORT,其最坏情况时间复杂度为O(n log n),这是排序算法可以提供的最好复杂度。
示例
# input list
inputList = [10, 3, 5, 5, 1, 4, 6, 20, 5]
# printing maximum/greatest element in an input list
print("Maximum/greatest element in an input list: ",max(inputList))
# printing minimum/smallest element in an input list
print("minimum/smallest element in an input list: ",min(inputList))
# printing the sorted list
print("Sorted list: ",sorted(inputList))
# printing the Number of occurrences/frequency of a list element
print("The no. of occurrences of 5 is = ",inputList.count(5))
输出
执行上述程序后,将产生以下输出−
Maximum/greatest element in an input list: 20
minimum/smallest element in an input list: 1
Sorted list: [1, 3, 4, 5, 5, 5, 6, 10, 20]
The no. of occurrences of 5 is = 3
Python列表结合了数组和链表的最佳特性
Python列表具有删除特定元素但保持内存位置连续的独特能力。这一特性将链表的概念变得 无所谓 。
这就像是链表的 类固醇 !除此之外,插入可以在任何位置进行。
示例
# input list
inputList = [10, 3, 5, 5, 1, 4, 6, 20, 5]
# deleting element at specific index(here at 4th index) using del
del inputList[4]
print("After deleting the element at the 4th index", inputList)
# deleting specific element(6) from list using remove() function
inputList.remove(6)
print("After deleting element 6 from the list:", inputList)
# inserting at any arbitrary position
inputList[-2] = "tutorialspoint"
print("Inserting (tutorialspoint) at last second index:", inputList)
# Getting sublists
result = inputList[:2]
print(result)
输出
执行上述程序后,将生成以下输出 –
After deleting the element at the 4th index [10, 3, 5, 5, 4, 6, 20, 5]
After deleting element 6 from the list: [10, 3, 5, 5, 4, 20, 5]
Inserting (tutorialspoint) at last second index: [10, 3, 5, 5, 4, 'tutorialspoint', 5]
[10, 3]
唯一列表操作:回溯、子列表
如果我们不确定列表的大小,我们可以通过使用索引位置-1来获取最后一个元素。同样,-2可以用于倒数第二个元素,依此类推。因此,我们可以回到过去。我们也不需要给出列表的大小;因此它可以作为一个动态分配的数组使用。
如上面的示例所示,可以在不遍历列表的情况下提取指定部分的列表。列表可以容纳多个数据类型的事实是令人惊讶的。列表不再只是一个统一的数据组件集合。
函数可以返回多个值
在其他编程语言中,函数通常只返回一个值,但在Python中,我们可以返回 多个值 。
示例
# creating a function that returns multiple values
def returnMultipleValues(*arr):
el = arr[0]
e2 = arr[1]
return el,e2
x, y = returnMultipleValues(4, 6)
print(x,' ',y)
x, y = returnMultipleValues(1, 3, 5, 8, 1)
print(x,' ',y)
输出
执行上述程序后,将生成以下输出-
4 6
1 3
一种对函数的灵活参数数量
参数可以以列表的形式传递给函数,每次函数调用时列表的大小可以改变。在前面的示例中,我们分别使用两个参数和五个参数调用函数。
if-else语句和for循环易于使用
Python的if-else语句允许我们在列表中查找特定元素,而无需遍历整个列表并验证每个元素。
一些编程语言有一个与for循环略有不同的foreach循环的概念。它使我们能够通过将循环变量逐个取值为列表的值来遍历列表。Python在for循环中已经包含了foreach循环的概念。
示例
# input list
inputList = [10, 3, 5, 5, 1, 4, 6, 20, 5]
# searching elements using if-else statements which are made easy
if 5 in inputList:
print("True")
else:
print("False")
# printing list elements using for each loop for e in inputList:
print(e, end = ' ')
输出
执行上述程序后,将生成以下输出结果−
True
代码缩进
在Python中,代码块通过缩进来区分。这提高了代码的可读性,并帮助我们养成缩进代码的习惯。
集合和字典的概念
- 集合是一种无序的集合数据类型,可以进行迭代、变异,并且不包含重复元素。它类似于一个没有重复元素的列表。
-
字典类似于列表,其值可以使用用户定义的键来检索,而不是传统的数值索引值。
示例
# input Set
inputSet = {'t','u','t','o','r','i', 'a', 'l', 's'}
# second 't' is dropped to avoid duplicates and the
# set returns elements unorderly
print("Set:", inputSet)
# input dictionary
inputDict = {'Cricketer': 'Dhoni', 'Country': 'India', 'Score': 100}
# accessing values of a dictionary using keys
print("Value of 'Cricketer': ", inputDict['Cricketer'])
print("Value of 'Score': ", inputDict['Score'])
输出
在执行之后,上面的程序将生成以下输出 –
Set: {'r', 'l', 't', 'a', 'i', 'o', 's', 'u'}
Value of 'Cricketer': Dhoni
Value of 'Score': 100