初识Python

1 python基本概念

Python是计算机编程语言中的一种。

1.1 语言

什么是语言?
语言是一种指令系统,语言是生物行为的进化,人类拥有完整体系的语言。语言与逻辑相关,而人类的思维逻辑最为完善。因此,目前也只有人类才能使用完整体系的语言。就广义而言,语言是采用一套具有共同处理规则来进行表达的沟通指令,指令会以视觉、声音或者触觉方式来传递。严格来说,语言是指人类沟通所使用的指令-自然语言。

1.2 计算机语言

什么是计算机语言?
编程语言俗称“计算机语言”,种类非常的多,总的来说可以分成机器语言、汇编语言、高级语言三大类。电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。

1.3 计算机语言的发展

1.3.1 机器语言

由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言

1.3.2 汇编语言

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

1.3.3 高级语言

高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,像最简单的编程语言PASCAL语言也属于高级语言。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:解释类和编译类。

1.4 计算机语言执行方式

计算机语言执行方式可分为以下两种:

  • 编译执行
  • 解释执行
1.4.1 编译执行

编译执行是利用事先编写好的成为编写程序的机器语言程序,作为系统软件存放在计算机内,当高级语言源程序进入计算机,被这个翻译成目标程序,以完成源码要处理的运算并取得结果
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。

1.4.2 解释执行

解释方式是源程序进入计算机内,解释程序边扫描边解释,逐句输入逐句翻译,计算机一步一步执行,并不产生目标程序
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。如较早时期的Qbasic语言。

1.5 什么是python

解释性计算机编程语言

1.6 python版本

python目前有两个版本,python 2和python 3,两个版本互不兼容

1.7 python语言特征

  • 语言简单、简洁
  • 面向过程与面向对象
  • 解释执行
  • 跨平台性
    可以在windows、Linux、Mac上运行
  • 可扩展性(胶水语言)
    可以调用别的语言编写的功能模块,将它们有机的结合在一起形成更高效的新程序,如c++、java
  • 强大库的支持(内置库与社区库)

1.8 python应用领域

  • Web应用开发
  • 网络爬虫
  • 数据分析与科学计算
  • 可视化桌面程序
  • 游戏编程
  • 人工智能

2 python开发环境

2.1 Windows操作系统

  • 下载安装包

首先,去官网(www.python.org)下载Python安装程序。选择合适的Python版本。安装程序分为32位与64位,可以根据自己机器的实际情况进行选择,如果是64位机器,建议下载64位的版本。
在这里插入图片描述

  • 安装

安装过程比较简单,直接下一步就好。注意在安装时,可以将Python加入到环境变量的选项勾选。当然,如果安装时没有勾选,以后也可以自行配置。

在这里插入图片描述
可以通过如下方式来查看Python的版本信息:

python -V

或者:

python --version
在这里插入图片描述

2.2 Linux/Mac操作系统

Linux / Mac操作系统自带Python2与Python3开发环境。

2.3 python虚拟环境

Python虚拟环境是一个半隔离的环境,在该环境中安装的库仅对该环境下的程序有效,不会对系统环境造成影响。

为了能够实现Python多版本共存,同时,彼此之间又不会相互干扰,可以通过创建Python虚拟环境来实现。

2.4 python开发工具

编写Python程序非常简单,可以使用任何存文本编辑器。例如,Windows操作系统中的记事本。不过,普通的文本编辑器相对朴素,而一些开发工具可以提供功能强大,更加友好的且方便的开发环境,从而提高开发效率。

常用的Python开发工具有:

  • Sublime Text
  • PyDev + Eclipse(LiClipse)
  • Pycharm
  • Anaconda
2.4.1 Anaconda安装
  • 下载安装包
    在这里插入图片描述
  • 安装
    安装过程比较简单,直接下一步就好。注意在安装时,可以添加环境变量的选项勾选。当然,如果安装时没有勾选,以后也可以自行配置。
    在这里插入图片描述

3 python的程序

3.1 交互式

打开终端环境,执行python或Python3命令,进入python交互环境,输入代码运行。

在Python交互式模式下,可以输入exit()或quit()退出交互模式。

C:\Users\Administrator>python
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 100
100
>>> print("hello world")
hello world
>>> 100+9000
9100
>>> 100*2
200

3.2 文件式

通过建立.py文件,执行。

3.3 交互式与文件式的区别

通过交互式环境,我们可以直接输入要执行的内容,并且可以马上看到程序的运行结果,这为我们提供了便捷性。但是关闭交互式窗口,所有的定义与与语句全部丢失。这对一个较大的程序来说,是非常不方便的。因为下次执行时,我们不得不重新再输入一次。

通过文件式编写程序,在运行时不能直接获取变量(或常量)的结果,而是需要使用print语句输出才可以。但是,通过文件可以将所有执行的程序语句保存起来,以便于下次能够重复执行。

交互模式也可以直接运行文件模式

age=input("请输入你的年龄:")
print(age)

在这里插入图片描述

4 变量和常量

4.1定义变量

变量,用来使用指定的名称来绑定特定的值。变量具有变量名与变量值。我们可以采用如下方式定义变量:

变量名 = 变量值

例如:

age = 10

这样,就定义了一个变量,变量名为age,值为10。我们将名称age绑定10,需要留意的是,中间的“=”是赋值号,不是数学上的等号(数学上的等号Python中使用“==”),意为将10赋值给age,这是一个从右向左的运算符。

经过如上定义之后,我们就可以使用变量名来访问其所绑定的值:

print(age)

当然,变量也是可以更改绑定值:

age = 20

此时,我们就将age绑定的值由之前的10,改成了20。

age = 10
name1 = None
age=20
print(age)
print(name1)
print("hello world")

在这里插入图片描述
我们也可以一次性定义多个变量(或者为多个变量赋值),语法如下:

x = y = z = 3

这样,我们就一次性的定义了三个变量,所有变量绑定的值均为3。

说明:

变量在第一次赋值时叫做变量的定义,在以后赋值时,就不再是定义变量,而是对更绑定值进行更改。
变量在定义时,必须要绑定一个具体的值,否则无法使用。

定义变量有什么用呢?如果要输出一个值,可以直接使用print函数来输出,例如,在上例中,我们可以使用:

print(20)

如果是一个简单的值,这样做自然是没有问题的,然而,如果是一个复杂的计算,使用变量可以保存一个中间结果,以便下次直接使用,而不必在重复进行一次计算。

平行赋值

平时赋值是Python语言所特有的语法。在进行多变量操作时,可以提供简便性。

4.2 删除变量名(不常用)

定义变量时,实际上就是使用变量名关联了指定的值。可以认为,变量名就是一个标签,贴在了对应的值上。当变量不需要,我们也可以删除变量名。删除变量名使用del,语法如下:

del 变量名

当删除变量名后,我们就无法再使用变量名来访问其之前所关联的值。这就是一个解绑操作,相当于将标签名从值上撕了下来。

我们可以通过变量之间的赋值,将值关联多个变量。当删除一个变量名后,不会影响到其他的变量名,因为del删除的只是变量名称,而并非变量名所关联的值对象。

4.3 常量

  1. 用全部大写的变量名:PI = 3.14159265359

  2. None

None是Python中内置的一个常量值,表示变量值缺失。因为我们在定义变量时,必须给变量一个明确的值。但可能在有些情况下,变量在定义时,值不方便给出,而是在随后的计算中才能确定,因此,我们就可以在定义变量时,给变量赋予None值。

variable = None

此外,None也经常作为参数的默认值,应用与函数的参数传递中。

5 输出与输入

  • 输出函数print的使用:
    输出之后不换行。
    多关键字输出。
    设置分隔字符。
    输入函数input

  • input内置函数的使用:
    获取输入的内容。

age=input("请输入你的年龄:")
print(age)

6 命名规则

从语法的角度来说,标识符只要符合Python的语法规定,就不会影响程序的运行,然而,在很多情况下,我们仅仅编写出符合语法的程序是不够的。

6.1 关键字

关键字,是Python中具有特殊语义的符号。Python3.6中,所有的关键字列表如下:
在这里插入图片描述
我们可以通过如下程序打印Python中所有的关键字列表。

import keyword
print(keyword.kwlist)

7 数值类型

在Python中,数据可以分为如下类型:

1.数值类型

  • 整数类型(int)
  • 浮点类型(float)
  • 复数类型(complex)
  • 布尔类型(bool)

2.序列类型

  • 列表(list)
  • 元组(tuple)
  • 字符串(str)
  • 字节(bytes)
  • 映射类型(dict)
  • 集合类型(set)
  • 其他内置类型

鸭子类型

在Python中,严格来说,变量是不具有类型的,变量的类型完全取决于其所关联的对象类型,这与其他语言的差别较大(C,Java等)。因此,我们常习惯的成Python的类型为“鸭子类型”,这是一种动态类型的体现。

说明:

由于变量必须要关联一个具体的对象,才能确定变量的类型。因此,在定义变量时,不能只给出变量的名字,必须要同时也给出变量所关联的对象。
Python2中还支持长整数类型(long),在Python3中取消。

7.1 整数类型

整数类型(int)是最常使用的类型。我们数学上使用的整数,例如,3,-50等,这些都是整数类型。

1.整数类型支持四种进制表示

  • 二进制(使用0b或0B前缀)
  • 八进制(使用0o或0O前缀)
  • 十进制(无前缀)
  • 十六进制(使用0x或0X前缀,10 ~ 15使用a ~ f或A ~ F表示)

2.进制转换
我们可以调用相应的函数,来对四种进制之间进行转换。

  • bin其他进制转换为二进制
  • oct其他进制转换为八进制
  • int其他进制转换为十进制
  • hex其他进制转换为十六进制
num = 10
print(num)
#二进制
print(bin(num))
#八进制
print(oct(num))
#十进制
print(int(num))
#十六进制
print(hex(num))

在这里插入图片描述

7.2 布尔类型

布尔类型(bool)表示的是一种条件的判断,具有两个值:True与False。其中,True表示条件成立,即为“真”,而False表示条件不成立,即为“假”。

num3=True
print(type(num3))
num4=5>3
print(type(num4)),print(num4)

在这里插入图片描述
布尔类型是整数类型的子类型。实际上,True就是1,False就是0。因而,我们也可以使用布尔类型参与数学上的运算,与使用1与0参与运算的结果是一样的。

#bool跟整数运算时,会进行隐式转换,bool值会转换为整数类型,true为1,false为0
num5=1+True
print(num5),print(type(num5))

在这里插入图片描述

7.3 浮点类型

浮点类型(float)就是数学上的小数类型。例如:1.0,-2.5等,都是浮点类型。在进制表示上,浮点类型仅支持十进制表示(这点不同于整数类型)。除了常规的表示方式外,浮点类型也可以使用数学上科学计数法的形式表示,例如:

1.5e30

说明:

十进制的整数类型不能使用0开头,但是,浮点类型可以以0开头。
浮点类型的特殊值

浮点类型具有两个特殊值:NaN(Not A Number)与Infinity(无穷大),其中无穷大又可分为正无穷(+Infinity)与负无穷(-Infinity)。我们可以通过float函数来获得这些值。

NaN有一个特征,就是自己不等于自己,因此,我们不能通过==来判断一个数值是不是NaN。

7.3.1 浮点类型的不精确性

在使用浮点类型时,我们需要留意,浮点类型在计算机中仅是近似的存储,浮点类型是不精确的。因此,我们要避免进行如下的操作:

避免数量级相差很大的浮点值之间进行运算。
避免进行等量的比较。
练习浮点类型的计算,自行找出还有哪些计算体现出不精确性。

7.3.2 Decimal的使用

考虑到浮点类型的不精确性,因此,如果我们需要进行精确计算时,我们可以使用decimal模块中的Decimal类来实现,该类提供精确的浮点计算。

此外,我们也可以指定Decimal的计算精度,即计算结果最多保留的有效数字位数,默认为28位有效数字。

7.4 复数类型

Python中的复数类型(complex)类似于数学上的复数。含有虚部(使用j或J后缀)的数值为复数类型。例如:3 + 5j,-2 - 3j(数学中虚部后缀为i)。复数分为实部与虚部两个部分,我们可以通过real与imag属性分别获取复数的实部与虚部的值。

#int
num = 10
#float
num1=2.14
#complex
num2=1+2j
print(type(num)),print(type(num1)),print(type(num2))

在这里插入图片描述

7.5 类型转换

7.5.1 获取数据类型

我们可以通过type函数获取变量的类型,准确的讲,应该是变量所关联的对象的类型。

使用int,float与complex进行混合运算,确定结果的类型,总结。

7.5.2 类型转换函数

我们可以在不同的类型之间进行类型转换,Python中为我们提供了如下的转换函数:

  • int(value)
    将数值类型或字符串转换为整数(int)类型。如果没有参数,返回0。

  • float(value)
    将数值类型或字符串转换为浮点(float)类型。如果没有参数,返回0.0。

  • complex(real, imag)
    根据实部与虚部(可选)创建一个复数。如果没有参数,返回0j。

  • bool(value)
    参数为真值时,返回True,否则返回False。

7.5.3 4种类型之间的转换

说明:

尽管可以使用转换函数进行类型转换,但并非任意两个类型之间都是能够进行转换的。例如,复数类型就不能够通过int或float转换为整数或浮点类型。

此外,int函数还可以提供第二个参数,指定解析转换时,使用的进制。此时,第一个参数需要是字符串类型(或字节等类型),不能是数值类型。例如:

int(“300”, 16)

则会根据16进制来解析300,最终函数返回的结果为768,而不是300。如果没有指定第二个参数,则默认为十进制。

q=input("请输入一个数")
print(type(q))
#字符串类型转化为数值类型
p=int(input("请输入一个数"))
print(type(p))
#bool类型转化为数值类型-显示转换
print(int(True))

#将字符串10转换为二进制
print(int("10",2))

#bool类型转换
print(bool(3>5))
#非零都代表true
print(bool(2))
print(bool(1.2))
print(bool(0))
print(bool(-2))

#链式赋值
x=y=z=2
a=bool(x=y)
print(a)
print(type(a))
print(int(a))
print(type(int(a)))

在这里插入图片描述
级别:复数类型> 浮点类型> 整型 > 布尔类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值