python的优缺点是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的优缺点是啥?相关的知识,希望对你有一定的参考价值。

优点:
Python是一种代表简单主义思想的语言,阅读一个良好的Python程序就感觉像是在读英语一样,使你能够专注于解决问题而不是去搞明白语言本身;
Python底层是用C语言编写的,很多标准库和第三方库也都是用C写的,运行速度非常快;
IPython
Notebook使我们更容易使用Python进行数据工作,可以轻松地与同时共享Notebook,无需他们安装任何东西,大大减少组织代码,输出和注释文件的开销;
Python是一种通用语言,容易和直观,在学习上会比较容易,可以加快你写一个程序的快速,此外Python测试框架是一个内置的,可以保证你的代码是可重复使用和可靠的;
Python还是一个多用途语言,把不同背景的人结合在一起,作为一种常见的、容易理解,大部分程序员都懂,可以很容易地和统计学家沟通,你可以使用一个简单的工具就把你每一个工作伙伴整合起来。
由于它的开源本质,Python已经被移植在许多平台上,比如说:Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS等。
缺点:
很多时候不能将程序连写成一行,如import sys;for i in sys.path:print
i,而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件;
Python语法独特,也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑,即便是很有经验的Python程序员,也可能陷入陷阱;
Python对比C、C++语言运行速度要慢一些。
参考技术A 简答:
Python语言的优点:
入门快bai,简单
功能强大,使用方便
可移植性du
开源
Python的缺点:
性能
详解:zhi
专门给你详细解dao释了,自己去看吧:
【整理】Python语言简介版
中的:
Python语言的优点和缺点
以及别的,比如:
Python能干什么?
(此处不给贴地址,权请自己用Google搜标题,即可找到帖子地址)
参考技术B Python这门语言的魅力和影响力已经远超Java、C、C++等编程语言前辈,2018年主流的十大编程语言中,Python排名第一。被广大使用者誉为“更美好”编程语言。也常常被昵称为“胶水语言”,Python这门语言拥有很多的优势,看完之后你会发现学习Python还是很不错的。
Python语言的优点第一个就是简单易学,简单到什么程度呢,举个例子来说,同样一个程序,使用C可能需要1000行代码,使用Java需要100行代码,而使用Python则只需要20行代码。这也就是很多新手小白选择学习Python的原因,它没有那么复杂的逻辑,代码简洁规范,关键字也相对较少,说明文档还非常简单,极易上手。第二个优点是免费开源,简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。第三个优点是开发速度快效率高,Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,因此Python运行速度非常快,开发效率非常高。此外Python还有:可移植性强、面向对象、可扩展性、可嵌入性、丰富的库等优势。这些都是Python的优点,所以造就了功能强大的Python语言,很适合零基础入行的小白们学习。说到Python语言的缺点,就是单行语句和命令行输出问题,有些时候不能将程序写成一行,这一点需要注意一下,不过Python的语言优势足以碾压其缺点。

ForeignKey 而不是 ManyToManyField 的优缺点是啥

【中文标题】ForeignKey 而不是 ManyToManyField 的优缺点是啥【英文标题】:What's the pros and cons of ForeignKey instead of ManyToManyFieldForeignKey 而不是 ManyToManyField 的优缺点是什么 【发布时间】:2016-10-08 10:08:00 【问题描述】:

在 django tutorial 中,它模拟了一个投票结构:

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

但我总是想知道为什么他们不实现多对多关系:

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    choices = models.ManyToManyField(Choice)

class Choice(models.Model):
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

有什么好处和坏处?

【问题讨论】:

它们是完全不同的东西,外键是一对多的关系。 是的,我知道。但他们为什么选择 ForeignKey?一个问题有很多选择,同一个选择可以用在很多问题中 【参考方案1】:

我确信他们在教程中使用了 ForeignKey(一对多)关系,因为他们试图使示例尽可能简单,只有两个模型:QuestionChoice。请注意,votesChoice 模型的一个字段,这使得显示投票结果变得非常简单。

如果您在进行民意调查时对每个问题都有相同的选择(非常同意、有点同意等),那么多对多关系可能是合适的。但这使事情变得更加复杂。您提出的多对多关系模型是:

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    choices = models.ManyToManyField(Choice)

class Choice(models.Model):
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

但是如果不进行一些更改,这将无法正常工作。votes 仍然是Choice 表的一个字段,但现在每个选项都适用于许多问题。您可以看到“强烈同意”选项获得了 38 票,但您无法确定选民同意哪些问题。为了能够正确地列出选票,您必须执行类似的操作

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    choices = models.ManyToManyField('Choice', through='QuestionChoices')

class Choice(models.Model):
    choice_text = models.CharField(max_length=200)

class QuestionChoices(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice = models.ForeignKey(Choice, on_delete=models.CASCADE)
    votes = models.IntegerField(default=0)

现在您可以将每个问题-选择组合的投票人数精确地制成表格,但它更复杂,不太适合入门教程。

使用您提出的 ManyToMany 模型,Django 将在幕后自动创建 QuestionChoices 模型,但要将 votes 字段附加到它,您必须自己明确地进行。

如果您的关系可以建模为 OneToMany 或 ManyToMany,则优缺点取决于您的特定应用程序。通常,您希望使用最准确地反映现实生活情况的模型。但是您还必须考虑如何更新和汇总数据,并尝试达成最佳折衷方案。根据我的经验,选择困难的情况并不多。

【讨论】:

非常感谢。这是关于理论和实际问题的非常详细的描述

以上是关于python的优缺点是啥?的主要内容,如果未能解决你的问题,请参考以下文章

python的优缺点是啥?

Dash by Plotly vs Jupyter Dashboards 的优缺点是啥? [关闭]

微服务:优缺点是啥?

Liftweb Comet 的优缺点是啥?

ForeignKey 而不是 ManyToManyField 的优缺点是啥

远程过程调用的优缺点是啥