Python语言初步

什么是编程语言?

  • 自然语言

    • 英语
    • 普通话
  • 编程语言和自然语言一样,是一种规则:

    • Office中的Excel,可以使用Basic来进行计算
    • HTML/Word中呈现某种格式,就要使用某种规则,在某种程度上来说,这也算是一种编程语言

编程语言的分类

听不懂没关系,先和这些名词混个脸熟

按执行前的动作分类:

  • 编译型语言:比如我们要之后学的Go
  • 解释型语言:比如JS,一般来说,Python也会被称为解释型语言,但实际上它也有编译的步骤

按语言中对类型的要求程度分类:

  • 强类型语言:不同的类型不能进行运算,比如 1 + "a"
  • 弱类型语言:比如JS就是弱类型语言,不同的类型可以进行运算,比如 1 + "a"

按对语法的检查程度分类:

  • 静态语言:比如 Go语言,绝大部分错误都在编译期就进行检查
  • 动态语言:比如 Python,很多的错误就在运行时才会检查

https://www.zhihu.com/question/19918532

也许大家根本看不懂,没有关系,不用强行记忆,我们再后面的学习中见多了,自然就能理解了,在此我们只是打个照面。

计算机是怎么执行我们的代码的?

  • 一切从0和1开始。
  • 高点的电压代表1,低点的电压代表0。由于只能表示这两种状态,因此是2进制(对比一下10进制)。
  • 一个0或者一个1我们定义为一个bit(回顾一下前面的:编程语言其实是一种规定)。
  • 8个bit我们定义为一个byte。
  • 1024个byte我们定义为一个KB。
  • 1024个KB我们定义为一个MB。
  • 1024个MB我们定义为一个GB。
  • 1024个GB我们定义为一个TB。
  • 等等。

计算机的主要组成:

  • CPU
  • 内存
  • 硬盘
  • I/O(输入/输出)
  • 其它外部设备等等

来看一个简单地例子:

1+1在计算机中是怎么执行的?

Python的基本用法

首先我们来进行点到

环顾周围,到处都是计算机和软件。我们使用编程语言来构建我们所使用的一切, 常见的编程语言, 在本质上都大同小异,但是在掌握多个语言的共同之处之前,我们需要先精通一门语言,在此, 我们选择了Python作为入们语言。

Python的用处非常的广泛,比如可以写网站、分析数据、抓取数据、人工智能、自动化、网络编程、 图形软件、游戏等等。

接下来我们就来开始我们的Python之旅吧!

简单计算(加减乘除等)

在终端中输入python然后回车,然后就得到了一个计算器。我们可以算一下,我们每个月税前需要达到多少钱,才能拿到我们心目中 预期的年薪,如果是12个月呢?13个月呢?14个月呢?

比如预期年薪20万,14个月发,那么每个月需要达到:

>>> 200000 / 14
14285.714285714286

变量及其类型(以及好的命名规范)

当代码里涉及到的数字、文字越来越多的时候,我们就需要引入变量这个概念。

维基百科:在程序設計中,變數(英語:Variable,scalar)是指一個包含部分已知或未知數值或資訊(即一個值)之儲存位址,以及相對應之符號名稱(識別字)。

可以看出来,一个变量有两个部分组成,第一是一个值(比如说小数,整数,文字等);第二是一个名字。把这两个组合起来,就是我们 所要了解的变量。比如:

>>> a = 1

a就是一个变量。以后日常的编程中,有时候会把a也叫做变量名,而1就是当前的变量的值。那为啥叫变量呢?因为可以变:

>>> a = 2
>>> a = "你好"

注意2和 “你好”,他们的类型是不一样的,python中有这么几种基本数据类型:

  • 整数(int, integers)
  • 小数(也叫浮点数, float, double)
  • 字符串(也就是文字, str),字符串中的每一个文字就叫一个字符,比如 “abcd” 中的 a, b, c, d分别是一个字符
  • 布尔值(也就是真和假两个值,bool: true, false)

函数

上面说过算工资,我们会发现,如果把发工资的月数,从12变成13,或者变成14,我们总是需要重新输入。这还只是算一个工资而已, 如果碰到更麻烦的计算,那就需要重复写很多,有没有偷懒的办法呢?有,那就是使用函数。

函数其实就是把一堆计算放在一起,组成一个独立的块,就像去菜市场买菜的时候,我们会拿个袋子提菜一样,那个袋子就是函数, 袋子里面的菜就是里面的各种计算,袋子的名字就叫函数名。函数是构成编程语言的基础。

Python中定义函数,要用一个关键字 def,是 define 的缩写,意思是:定义。所以我们拿到一个函数的声明之后可以这样读:

def hello():

定义一个函数,函数名为 hello。

注意几点:

  • 要有 def 关键字
  • 函数名之后要接一个括号,括号里面可以什么也没有,也可以有几个变量名,我们把它们叫做函数的参数
  • 最后要有一个英文的冒号
  • 冒号的下面要有一堆计算,这就是这个函数的函数体,也就是买菜的袋子里所装的菜
  • 函数体和def的d那里,需要有缩进,我们一般用四个空格

比如我们来看一个函数:

def hello(name):
    print(name)
  • hello 是一个函数
  • hello接收一个参数,参数的名字叫做name
  • print也是一个函数
  • print也接收一个参数,参数的值是我们给hello这个函数的name这个参数所传的值

是不是有点拗口,我们来看看实际运行效果就知道了:

>>> def hello(name):
...     print(name)
... 
>>> hello(1)
1
>>> hello("你好")
你好
>>> hello("what")
what
>>> hello(1.2)
1.2

我们来看看错误的用法:

>>> def hello:
  File "<stdin>", line 1
    def hello:
             ^
SyntaxError: invalid syntax
>>> def hello(:
  File "<stdin>", line 1
    def hello(:
              ^
SyntaxError: invalid syntax
>>> def hello()):
  File "<stdin>", line 1
SyntaxError: unmatched ')'
>>> def hello():
... this
  File "<stdin>", line 2
    this
    ^
IndentationError: expected an indented block
>>> 
>>> def hello():
... print()
  File "<stdin>", line 2
    print()
    ^
IndentationError: expected an indented block
>>> 

循环(和迭代)1

简单来说,迭代就是一个一个来,比如我们点到就是一种迭代,按照某种顺序从开始到最后一个一个点。编程语言中,会有一个概念 叫做循环,一个概念叫做迭代。循环就是重复做一件事情,迭代就是按照某种方向逐一去访问某一项。

如果分不清没有关系,暂且把他们当一样的,后面我们还会讲,讲多了看多了自然就理解了。

流程控制

都说程序员逻辑思维能力很强,网上也有很多段子,比如:

女朋友说,下班回来带一个西瓜。如果看到番茄,就买两个。
正常人买回来的是一个西瓜和两个番茄,程序员买回来的是两个西瓜。

这是为什么呢?因为代码中我们经常用到各种流程控制,分支结构。

def check_age(age):
    if age < 18:
        print("未满18岁")
    elif age < 30:
        print("未满30岁")
    else:
        print("大于等于30岁")

运行结果:

$ python main.py 
未满18岁
未满30岁
大于等于30岁
大于等于30岁

Python内置的数据结构

  • list
  • tuple
  • dict
  • set

代码是如何运行的?

表达式计算先后顺序

循环(和迭代)2

  • if…else…
  • if…elif…else…
  • continue
  • break
  • return

实战

  • 使用Python来提取kindle的读书笔记(使用beautifulsoup4)
  • 工资计算器:来算算毕业以后的工资到底是多少

@jiajunhuang 2015-2020, All Rights Reserved。本站禁止转载,引用请注明作者与原链。



本页面二维码



点我去主站