<python 语言开发基础>
python 的简介
创始人:Gudio wan Rossum(荷兰人)
时间: 1989 圣诞节期间
Python的命名:源于一个戏剧团 Montypython
TIOBE index(语言排行)
python 的应用领域
系统运维
网络编程
科学计算
人工智能,机器人
Web 开发
大数据及数据库编程
云计算
教育
游戏,图像
其他
python 的优缺点
优点:
面向对象(java,c++,python)
免费
可移植
可混合编程(c/c++/java/.net)
简单易学易用
应用领域广泛
开发效率高
开源
缺点:
与c/c++相比执行速度不够快
不能封闭源代码
python 的官网
www.python.org
python 的版本
python v2.7(2020年结束维护)
python v3.5(当前教学版本)
python v3.8(最新版本)
python 的安装:
windows / Mac os /unix...
python 的运行
python 的解释执行器
cpython (python3)
Jython (c)
IronPython (.net)
PyPy (python)
第一个python程序
见: hello.py
python的运行:
# 方法一
$ python3 hello.py
#方法二
$ chmod u+x hello.py
在hellp.py 的第一行写入
#! /usr/bin/python3
$ ./hello.py
python 的交互提示模式
$ python3
>>> #< --可以在>>>提示符下输入语句
退出:
ctrl+d
>>> quit()
>>> exit()
python 的注释
# 井号开头,直到行尾
作用:
让注释内容不参加解释执行
python 的核心数据类型:
数字(整数,浮点数,复数,布尔型)
字符串
列表等
pythong程序的组成:
程序由模块组成
模块有语句,函数,类,数据等组成
语句包含表达式
表达式建立并处理数据对象
整型数 int
整型数是不带小数部分的数字。包括自然数,0,及负数
如: -5,10000,0 等
整型数的字面值表达方式:
十进制表示:
10 200
二进制表示:(0b开头,后跟0~1)
0b111
0b101
0b1111
八进制表示(0o开头,后跟0~7)
0o177 #127
0o11 #9
十六进制表示(0x开头,后跟0~9,A~F,a~f)
0x11 #17
0xFF #255
0x1234ABCD
进制转换:
十进制(逢十进一)
二进制(逢二进一)
八进制(逢八进一)
十六进制(逢十六进一)
练习:
计算 0xFFFF表示多少: 65535
计算 0b1001表示多少 9
计算 0o71 表示多少 57
试把 13 转为 二进制表示 0b1101
把 18 转为十六进制表示 0x12
浮点型数 float
浮点型数是带有小数部分的数字
表示方式:
小数形式:
3.14 3.1 3. 0.14 .14
科学计数法:
格式:
小数 e/E (正负号) 指数
如:
6.18E-1
2.9979e8
复数 complex
分为两部分:
实部(real)
虚部(image)
虚部以j或J结尾
字面值
1j, (2j), 1+1J, 3-4J, (-100+100j)
布尔类型数: bool
用来表示真和假两个状态的类型
True 表示真(条件满足或成立)
Flase 表示假(条件不满足或不成立)
说明:
Ture 的值为1
False 的值为0
空值 None 对象
None 是一个表示不存在的特殊对象
作用:
用来占位
用来变量解除绑定
表达式 和 运算符(也叫操作符)
表达式 expression
由一个数字或 数字和运算符组成
作用:
通常让计算机做一些事情并返回结果
例:
1+2
运算符:
算数运算符:
+ 加法
- 减法
* 乘法
/ 除法
// 地板除
% 求余
×× 幂运算
除法:
除法得到的数是浮点数,不会丢弃小数部分
1/3 = 0.3333
4/2=2.0
// 地板除
除的结果去掉小数部分向下取整
7 / 3 #得2.33333
7 // 3 #得2
8 // 3 #得2
3.25 //1.5 # 得 2.0
% 求余(也叫取模)
10 % 3 # 得 1
3.25 % 1.5 # 得0.25
** 幂运算
格式:
x**y
意为 x 的 y 次方
4 ** 2 #得16
3.0 ** 4.0 #得81
5.6 ** 1.414 #得11.506..
(1 + 2j) ** (3+4j)
练习:
用交互模式求:
1.一个商店卖西瓜7元一个,你带了20元钱能买几个西瓜,找零多少钱?
2.一个学生毕业的薪资10000元,每年涨20%,十年后他的薪资是多少?
运算符的优先级
**
* / // %
+ -
示例:
1 + 3 * 3 ** 2 + 4 // 2
1 + 3 * 9 + 4 // 2
1 + 27 + 4 //2
1 + 27 + 2
28 + 2
30
括号分组子表达式
用()可以将表达式分组,()内的表达式先进行计算
混合类型自动升级
1 + 2.14 返回浮点数 3.14
基本输出函数 print
格式:
print(要打印的东西)
各数据可以用逗号‘,’分隔开
示例:
print("hello")
print("1 + 2 =",1 + 2)
练习在终端打印:
********
* *
* *
********
练习:
已知矩形的长边长6cm,短边长4cm
写程序求出这个矩形的周长和面积
print('矩形的周长为:',6 * 2 + 4 * 2)
print('矩形的面积为:',6 * 4)
变量 variable
什么是变量
变量是用来绑定数据对象的标识符
变量名的命名方法:
1.变量名必须为字母或下划线开头,
后跟字母或下划线或数字
2.不能使用python的关键字做变量名
合法的变量名示例:
a a1 b bbb_aaa _Abcd var alb2c2
不合法的变量名示例:
1a 123 $ABC +a -b #ab @ab
python的关键字:
True, False, None, is, del, if, dlif,等
赋值语句 statement
语法:
变量名 = 表达式
或
变量名1 =变量名2 = 表达式
或
变量名1, 变量名2, ... = 序列
作用:
用于创建变量并将变量绑定(或关联)在一个对象上
说明:
1.当变量不存在时,创建改变量同时绑定在这个变量上
2.当变量存在时,改变此变量的绑定对象
3.一个变量只能绑定一个对象
4.两个变量可以同事绑定同一个对象
示例:
a = 10 #创建一个变量, 和10绑定在一起
b = 20
c = a + b #创建变量c,和10 + 20 的结果绑定在一起
a1 = b2 = c1 = 100
x,y = 100,200
练习:
指定一个圆的半径r为3cm
1.计算出圆的周长是多少厘米?
2.计算出圆的面积是多少平方厘米?
(要求用变量来代替3cm和圆周率 3.145926)
r = 3
π = 3.1415926
print("圆的周长是:",π* r * 2)
print("圆的面积是:",π* r ** 2)
python 中 关联/ 绑定 / 引用的含义
在pyhon中,变量没有类型
关联/绑定/引用都是指变量和一个对象的关联关系
在交互模式下查看变量的绑定关系:
>>> help('_main_')
python 中的自动化内存管理
a = 10000
b = 20000
a = a + b #发生了哪儿些事?
序列赋值的语法:
变量名1, 变量名2, ... = 对象1, 对象2,...
变量名1, 变量名2, ... = (对象1, 对象2,...)
变量名1, 变量名2, ... = [对象1, 对象2,...]
变量的交换绑定练习:
已知有两个变量:
a 绑定 10000
b 绑定20000
问,在不创建任何新对象的情况下,如何让a和b交换绑定的对象?
a = 10000
b = 20000
....
print(a) #20000
print(b) #10000
1. c=a
a=b
b=c
2. a,b = b,a
is / is not 运算符
作用:
判断两个变量是否绑定同一个对象,如果是同一个对象返回True,否则返回Flase
语法:
x is y
x is not y
小整数对象池
CPython中整数 -5 至 256
永远存在于小整数池中,不会释放并可重复使用
示例:
a = 5
b = 5
a is b # ??? Ture
a = 1 + 4
b = 2 + 3
a is b # Ture
id() 函数
格式
id(对象)
作用:
返回一个对象在内存中的地址
del 语句 (del 是delete的简写)
作用:
用于删除变量,同时删除于对象的关联关系。如果可能则释放对象
语法:
del 变量名
python的内存管理和引用计数
每个对象都会记录有几个变量引用自身,当引用的数量为0时,则对像被销毁,此种自动化内存管理的方式叫引用计数
复合赋值算术运算符:
运算符 说明
y += x 等同于 y = y + x
y -= x 等同于 y = y - x
y *= x 等同于 y = y * x
y /= x 等同于 y = y / x
y //= x 等同于 y = y // x
y %= x 等同于 y = y % x
y **= x 等同于 y = y ** x
练习:
1. 在终端输出图形
*
***
*****
*******
2.中国古代的秤是16两一斤,请问216两是古代的几斤几两?写程序打印出来
3.从凌晨0:0:0 计时,到现在已经过了63320秒
请问现在是几时,几分,几秒? 些程序打印出现在的时间
提示:
可以用地板除和求余实现
1. # print(" * ")
# print(" *** ")
# print(" ***** ")
# print("*******")
2. # print(216//16,"斤")
# print(216 % 16,"两")
3.# a = 63320//(60**2)
# b = 63320 % (60**2)//60
# c = 63320 % 60
# print(a,"时",b,"分",c,"秒")