Python 在编程语言中是啥地位?为啥很多大学不教 Python
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 在编程语言中是啥地位?为啥很多大学不教 Python相关的知识,希望对你有一定的参考价值。
参考技术A python既可用于前端还可用于后端开发。Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。
这在由Tim Peters写的Python格言(称为The Zen of Python)里面表述为:There should be one-- and preferably only one --obvious way to do it。
这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。
扩展资料:
Python的设计定位:
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。
Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。
由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。
Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。
所以很多人认为Python很慢。不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。可用的JIT技术是PyPy。
Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。
Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。
虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。
Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。
参考资料来源:搜狗百科-Python
“**”在python中是啥意思? [复制]
【中文标题】“**”在python中是啥意思? [复制]【英文标题】:What does "**" mean in python? [duplicate]“**”在python中是什么意思? [复制] 【发布时间】:2011-12-23 02:43:07 【问题描述】:可能重复:What does ** and * do for python parameters?What does *args and **kwargs mean?
简单程序:
storyFormat = """
Once upon a time, deep in an ancient jungle,
there lived a animal. This animal
liked to eat food, but the jungle had
very little food to offer. One day, an
explorer found the animal and discovered
it liked food. The explorer took the
animal back to city, where it could
eat as much food as it wanted. However,
the animal became homesick, so the
explorer brought it back to the jungle,
leaving a large supply of food.
The End
"""
def tellStory():
userPicks = dict()
addPick('animal', userPicks)
addPick('food', userPicks)
addPick('city', userPicks)
story = storyFormat.format(**userPicks)
print(story)
def addPick(cue, dictionary):
'''Prompt for a user response using the cue string,
and place the cue-response pair in the dictionary.
'''
prompt = 'Enter an example for ' + cue + ': '
response = input(prompt).strip() # 3.2 Windows bug fix
dictionary[cue] = response
tellStory()
input("Press Enter to end the program.")
关注这一行:
story = storyFormat.format(**userPicks)
**
是什么意思?为什么不直接传递一个普通的userPicks
?
【问题讨论】:
【参考方案1】:** 表示 kwargs。这是一篇关于它的好文章。 阅读:http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/
【讨论】:
【参考方案2】:'**' 接受一个字典并提取其内容并将它们作为参数传递给函数。以这个函数为例:
def func(a=1, b=2, c=3):
print a
print b
print b
现在通常你可以这样调用这个函数:
func(1, 2, 3)
但您也可以使用存储的这些参数来填充字典,如下所示:
params = 'a': 2, 'b': 3, 'c': 4
现在您可以将其传递给函数:
func(**params)
有时您会在函数定义中看到这种格式:
def func(*args, **kwargs):
...
*args
提取位置参数,**kwargs
提取关键字参数。
【讨论】:
那么,它可以用字典键映射回参数,对吗?这个功能/特性叫什么?我发现它非常有趣且功能强大,这仅适用于 python 吗? @DNB5brims,我相信这被称为“解构”。它正在进入其他语言,例如 Javascript (ECMAScript 2015)。 注意params
dict的键值必须与func
定义中列出的可选参数的名称匹配,否则会出现TypeError
。以上是关于Python 在编程语言中是啥地位?为啥很多大学不教 Python的主要内容,如果未能解决你的问题,请参考以下文章
Python 在编程语言中是啥地位?为啥很多大学不教 Python?