Python编程(第一讲 简介)

第一讲 简介

  • 1. 什么是Python?
  • 2. 为何命名为Python?
  • 3. Python的历史
  • 4. Python的特点
  • 5. Python的应用
  • 6. Python程序示例
    • 6.1 插入排序
    • 6.2 判断一个正整数是否为素数
    • 6.3 计算1+2+···+100
  • 7. Python之禅
  • 注:

1. 什么是Python?

Python是一种解释型、交互式、面向对象的编程语言。它包含了模块、异常、动态类型、高层级动态数据类型以及类等特性。在面向对象编程以外它还支持多种编程范式,例如过程式编程、函数式编程等。Python结合了超强的功能和极清晰的语法。它带有许多系统调用和库以及多种窗口系统的接口,并且能用C或C++来进行扩展。它还可用作需要可编程接口的应用程序的扩展语言。最后,Python非常易于移植:它可以在包括Linux和macOS在内的许多Unix变种以及Windows上运行。

2. 为何命名为Python?

在着手编写Python实现的时候,Guido van Rossum同时还阅读了刚出版的“Monty Python的飞行马戏团”剧本,这是一部自1970年代开始播出的BBC系列喜剧。Van Rossum觉得他需要选择一个简短、独特而又略显神秘的名字,于是他决定将这个新语言命名为Python。

3. Python的历史

  1. 1989年圣诞节期间,Guido van Rossum决定开发一个新的脚本解释语言,作为ABC语言的一种继承;
  2. 1991年,Python的公开发行版问世;
  3. 1994年,Python1.0发布;
  4. 2000年,Python2.0发布;(Python2的产品寿命结束日期最初设定为2015年,出于对大量的现存代码不能前向移植到Python3的关切而延期至2020年)
  5. 2008年,Python3.0发布,它对语言做了较大修订而不能完全向后兼容。

截至现在,只有Python3.6.x及其后续版本仍被支持

4. Python的特点

  1. 简单易用
    Python很容易使用,但它是一种真正的编程语言,提供了很多数据结构,也支持大型程序,远超shell脚本或批处理文件的功能。Python还提供比C语言更多的错误检查,而且作为一种“超高级语言”,它有高级的内置数据类型,比如灵活的列表和字典。正因为这些更加通用的数据类型,Python能够应付更多的问题,超过Awk甚至Perl,而且很多东西在Python中至少和那些语言同样简单。
  2. 免费开源
    开源并不等于免费,开源软件和免费软件是两个概念,只不过大多数的开源软件也是免费软件;Python就是这样一种语言,它既开源又免费。
  3. 跨平台
    Python是一种跨平台的编程语言,这意味着它能够运行在所有的主流操作系统中。在所有安装了Python的现代计算机上,都能运行你编写的任何Python程序。
  4. 解释型
    Python是一种解释型语言,在程序开发阶段可以为你节省大量时间,因为不需要编译和链接。解释器可以交互式使用,这样就可以方便地尝试语言特性,写一些一次性的程序,或者在自底向上的程序开发中测试功能。
  5. 面向对象
    Python完全支持面向对象编程,在Python中,一切皆是对象。
  6. 可扩展性
    如果你知道怎么写C语言程序,就能很容易地给解释器添加新的内置函数或模块,不论是让关键的操作以最高速度运行,还是把Python程序链接到只提供预编译程序的库(比如硬件相关的图形库)。一旦你真正链接上了,就能在Python解释器中扩展或者控制C语言编写的应用了。
  7. 模块化
    Python允许你将程序划分为能在其他的Python程序中重复利用的模块。它内置了很多的标准模块,你可以在此基础上开发程序——也可以作为例子,开始学习Python编程。
  8. 动态类型
    Python是属于“动态类型语言”的编程语言,所谓动态,是指变量的类型是根据情况自动决定的。

5. Python的应用

  • 网络应用程序
  • GUI开发
  • 科学计算
  • 自动化运维
  • 网络爬虫
  • 游戏开发
  • 人工智能

6. Python程序示例

6.1 插入排序

插入排序:通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应的位置并插入。

def insertion_sort(lst):
    lst_length = len(lst)
    for i in range(1, lst_length):
        key = lst[i]
        j = i - 1
        while j >= 0 and lst[j] > key:
            lst[j + 1] = lst[j]
            j -= 1
        lst[j + 1] = key
    return lst

lst_test = [5, 2, 4, 6, 1, 3]
print(insertion_sort(lst_test))

6.2 判断一个正整数是否为素数

def is_prime_number(num):
    if num == 1:
        return False
    else:
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                return False
        else:
            return True

print(is_prime_number(5))

6.3 计算1+2+···+100

rst = 0
for i in range(1, 100 + 1):
    rst += i
print("1 + 2 + 3 + ··· + 100 =", rst)

7. Python之禅

“Python之禅”是由Tim Peters撰写的有关编写优秀Python代码的指导原则,只需要在Python解释器中执行如下代码,就可以得到相关内容:

import this

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea – let’s do more of those!

注:

解释型语言和编译型语言:

  • 解释型语言:程序不需要编译,程序在运行时才被翻译成机器语言,每执行一次都要翻译一次,因此效率比较低;
  • 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就可以,因此效率比较高。

上次更新时间:2021.02.04








你可能感兴趣的:(Python,Programming,python,编程语言)