<< python 基础 >>
day01 笔记
python简介
创建人: Guido Van Rossum(荷兰人)
时 间: 1989年创建 python
python的应用领域
系统运维
网络编程
科学计算
人工智能,机器人
web开发
云计算
大数据及数据库编程 教育
游戏,图像
其它
python的优缺点:
优点:
面向对象(Java, C++, Python)
免费
可移植
可混合编程(C/C++/Java/.net)
简单易学易用
开发效率高
应用领域广泛
开源
缺点:
与C/C++相比,执行速度不够快
不能封闭源代码
python的官网
https://www.python.org
python的安装
兼容的操作系统 :
Windows
Linux/ UNIX
Mac OS X
...
python的运行:
python 的解释执行器的类型:
CPython (C语言开发)
Jython (Java开发)
IronPython (.net开发)
第一个python程序:
打开sublime text 3 编写 hello.py
内容里写 :
print("hello world!")
执行hello.py
# python3 hello.py
常用的程序文件的后缀:
.py python 文件后缀
.c C语言文件后缀
.cpp C++语言文件后缀
.java Java语言文件后缀
python的交互模式下编写并执行代码:
进入python交互环境
# python3 <回车>
退出 python3交互提示模式
>>> quit() <回车>
>>> exit() <回车>
输入: ctrl + d (输入文件结束符)
python的注释
python注释是以 # 开头,直至行尾
作用:
让注释内容不参加解释执行
sublime text 3 的注释快捷键 ctrl + /
python的程序组成
程序由模块组成
模块由语句,函数,类等组成
语句包含表达式
表达式建立并处理数据对象
python 的核心数据类型
数字(整型,浮点型,复数,布尔型)
字符串 str
列表 list
...
数字
整型数 int
整型数是不带有小数部分的数据,包括自然数,0,负数
如: -5, 0, 100等
整型字面值的表示方式
十进制表示
10
200
-100
999999999999999999999999999999
八进制方式表示(0o开头,后跟0~7)
0o11 (9)
0o177 (127)
十六进制表示(0x开头,后跟0~9,A-F或 a-f)
注:a表示10, b表示11, ... f表示15
0x11 (17)
0xFF (255)
0x1234abcd
十进制的表示(ob开头,后跟0~1)
0b111 (7)
0b1000 (8)
练习:
计算0xFFFF 表示多少? # 65535
计算0xFFFFFFFF 表示多少? # 4294967295
计算 0b1001 表示多少? # 9
计算 0o71 表示多少? # 57
试着把 9转为 二进制表示 # 1001
把 64转为 八进制表示 # 100
把 18转为 十六进制表示 # 12
浮点型数 float
浮点型数是带有小数部分的数字(小数部分可以是0)
浮点型数的两种表示方式:
小数形式
3.14 3.1 3.0 3. 0.14 .14
科学计数法
格式:
小数e/E(正负号)指数
如:
6.18E-1 (等同于 0.618)
2.9979e8 # 等同于 299790000.0
复数 complex
分为两部分:
实部(real)
虚部(image)
注:虚部是以j或J结尾的
复数的字面值表示
1j
(2J)
1+1J
1-1j
(-100+100J)
布尔型数 bool
用来表示真和假两种状态的类型
True 表示真(条件满足可成立)
False 表示假(条件不满足或不成立)
说明:
True 的值是1
False 的值是0
空值 None
None 是一个表示不存在的特殊对象
作用:
用来占位
变量解除绑定
表达式和运算符
表达式 expression
由一个数字或数字和运算符组成
作用:
通常让计算机做一些事情并返回结果
如:
1 + 2 * 3 - 4
算术运算符:
+ 加法
- 减法
* 乘法
/ 除法
// 地板除 floordiv
% 求余
** 幂运算
/ 除法
除法得到的数是浮点型数,不会丢弃小数部分
1 / 3 得 0.333333333333
8 / 2 得 4.0
// 地板除
除的结果去掉小数部分向下取整
7 / 3 得 2.3333333333
7 // 3 得 2
8 // 3 得 2
3.25 // 1.5 得 2.0
% 求余
7 % 3 得 1
3.25 % 1.5 得 0.25
** 幂运算
格式:
x ** y
意为x的y次方
4 ** 2 得 16
3.0 ** 4.0 得 81.0
5.6 ** 1.418
运算符的优先级
**
* / // %
+ -
示例:
1 + 3 * 3 ** 2 + 4 // 2
1 + 3 * 9 + 4 // 2
1 + 27 + 4 // 2
1 + 27 + 2
28 + 2
30
括号分组子表达式
用 () 可以将表达式分组,()内部的表达式先进行计算
(1 + 3) * 3 ** (2 + 4) // 2
4 * 3 ** (2 + 4) // 2
4 * 3 ** 6 // 2
4 * 729 // 2
2916 // 2
1458
练习:
用交互模式计算:
1) 一个商店西瓜7元一个,你带20元钱能买几个西瓜,找零多少?
2)一个学生的毕业薪资10000元,每年涨20%,十年后它的薪资是多少?
混合类型自动升级
1 + 2.14 返回类型为浮点型 3.14
基本输出函数 print
格式:
print(要打印的东西)
练习:
1. 已知矩形的长边长6cm,短边长4cm,用表达式求周长和面积
并打印出来
变量
什么是变量
变量是关联一个对象的标识符
变量可以绑定一个对象,并可以通过变量名来使用这个对象
标识符的命名方法
标识符必须为字母或下划线开头,后跟字母或下划线或数字
说明
不能使用python的关键字作变量名
python变量名区分大小写
合法的变量名示例
a a1 b bbb _a __ABCD var a1b2
不合法的变量名示例:
1a 123 $ABC +a -b @abc
python 的关键字(共33个)
True, False, None, is, del, if, elif, else
...
赋值语句 =
语法:
变量名 = 表达式
或
变量名1 = 变量名2 = 变量名3 = 表达式
或
变量名1, 变量名2, 变量名3, ... = 序列
作用:
创建一个变量或修改一个变量的绑定的对象
说明:
当变量不存在时,创建该变量,同时将变量绑定在这个对象上
当变量存在时,改变此变量绑定的对象
一个变量只能绑定一个对象
两个变量可以同时绑定在同一个对象上
示例:
a=10 一个变量只能绑定一个对象
b=20
a=b a绑定在b绑定的对象上 a与10解绑,绑定在20上
a=6
b=4
area=a*b 等同于area=6*4
x=y=z=1000 两个变量可以同时绑定在同一对象上
x,y=300,400 x绑定300,y绑定400
python 中自动化内存管理(重点)
a = 10000
b = 20000
a = a + b # 发生了什么事儿
c = a # a和c同时绑定的3000这个对象上
python中 关联/绑定/引用的含义
在python中,变量没有类型
关联/绑定/引用都是指一个变量和一个对象的关联关系
练习:
1. 指定一个半径为r = 3 厘米的圆
1) 计算圆的周长是多少厘米
2) 计算圆的面积是多少平方厘米
2. 已知有两个变量
a 绑定 10000
b 绑定 20000
问:
在不创建任何新对象的情况下,如何让a和b交换绑定的对象
答案:
a = 10000
b = 20000
t = a # 创建一个临时变量来绑定10000
a = b
b = t
print("a=", a) # 20000
print("b=", b) # 10000
# 方法2
a = 10000
b = 20000
a, b = b, a # 序列赋值
print("a=", a) # 20000
print("b=", b) # 10000
在交互模式下查看当前作用域内的所有变量
>>> help("__main__")
退出键: q
注:
help函数用来查看帮助或运行时信息
del 语句(delete简写)
用于删除变量,同时解除此变量与对象的绑定关系
如果可能则释放对象
语法:
del 变量名
自动化内存管理和引用计数
每个对象会记录有几个变量引用自身,当引用的数量为0时此对象被销毁,此种自动化内存管理的方式叫引用计数
a = 10000
b = 20000
a = b # 释放10000 同时a绑定在20000上
is / is not 运算符
作用:
判断两个对象是否是同一个对象,当是同一对象时返回True,否则返回False
is not 的作用与is相反
语法:
x is y
x is not y
x=10000
x=y
x is y #true
x=10000
y=10000
x is y #false
小整数对象池
CPython中 整数-5至256永远存在于小整数对象池中, 不会释放并可重复使用
x=100
y=100
x is y #true
id(x) 函数
作用:
返回一个对象在内存中的地址
练习
1. 写程序在终端打印出如下图形:
*
***
*****
*******
2. 中国古代的秤是16两一斤,请问中国古代的216两是古代的几斤几两,写程序打印出来
3. 从凌晨 0:0:0 计时,到现在已经过了63320秒
请问现在是几时几分几秒? 写程序打印出来
提示:可以用地板除和求余来实现
4. 温度转换
摄氏温度 = 5.0/9.0*(华氏温度-32)
开氏温度 = 摄氏温度 + 273.15
问:
100华氏温度转为摄氏温度是多少度?
转为开氏温度是多少度?