day01笔记
python简介
创建人:Guido Van Rossum(荷兰人)
时间: 1989年创建Python
python的应用领域
系统运维
网络编程,
科学计算
人工智能,机器人
web开发
云计算
大数据及数据库编程
教育,
游戏,图像
其他
python的优缺点:
优点:
面向对象(Java,C++,Python)
免费,可移植,可混合编程,简单易学易用,开发效率高,
应用领域广泛,开源
缺点:
与C/C++相比,执行速度不够快不能封闭源代码
Python的安装:
兼容的操作系统:
Windows
Linux/Unix
MaxOSx
Python的运行
python的解释执行器的类型
CPython(C语言开发)
Jython (Java语言开发)
IronPython(。net开发)
第一个python程序:
打开sublime tex.3 编写hello。py
内容写:
print(“hello world”)
执行hello。py
python hello。py
常用的程序文件的后缀
。py python文件后缀
。c c语言文件后缀
。cpp c++语言文件后缀
。java java语言文件后缀
python的交互模式下编写并执行代码:进入python交互环境
#python 《回车》
推出python交互提示模式
》〉》quit()《回车》
〉》〉exit() 〈回车〉
输入:ctrl+d(输入文件结束符)
python的注释:
python的注释是一#开头的,直至行尾
作用:
让注释内容不参加解释执行
python程序组成
程序由模块组成
模块由语句,函数,类等组成
语句包含表达式
表达式建立并处理数据对象
python 的核心数据类型
数字(整型,浮点型,复数,布尔型)
字符串 str
列表 list
。。。
数字:
整型: int
整型数是不带有小数部分的数据,包括自然数,0,复数如: -5,0,100等可以包含很多位,不需要考虑越界
整型字面值的表示方式
十进制表示:
10,20,30
八进制方式表示(0o开头,后跟0~7)
0o11,(9)
0o177(127)
十六进制表示(0x开头,跟0~9,A~F)
二进制的表示(0b开头,后跟0~1)
浮点型数 float
浮点型数是带有小数部分的数字(小数部分可以是0)
小数形式;
3.14, 3.2
科学计数法:
小数e/E(正负号)指数
如:
6.18E-1等通同与0.618
2.9979e8 等同于29799
复数: complex
分为两部分:
实部(real)
虚部(image)
注:虚部是以j或J结尾的
复数的字面值表示
1j
(2J)
1-1j
布尔型数 bool
用来表示真和假两种状态的类型
True表示真(条件满足成立)True的值是1
False的值是0
空值
None是一个表示不存在的特殊对象
作用:
用来占位
变量解除绑定
表达式和运算符
表达式 expression
由一个数字或运算符组成
作用:
通常让计算机做一些事情并返回结果
算数运算符:
+ 加法:
- 减法:
* 乘法
/ 除法
// 地板除 floordiv
% 取余
** 密运算
/ 除法
除法得到的数是浮点数,不会丢弃小数部分
1/3 得0.333333
8/2 得4.0
// 地板除
除得结果去掉小数部分向下取整
7/3得2.3333
7//3 得 2
8//3 得 2
3.25 //1.5 得 2.0
abs(a):
求一个数的绝对值
divmod(a,b):
内建函数divmod()返回的是两个值,这两个值在一个圆括号里,圆括号中第一个数字表示商,第二个数表示余数
round(a,b)
内建函数round(),第一个参数表示任意一个数,第二个参数表示要保留的小数位数,返回值是一个四舍五入后的数值.
dir(module):
是一个非常有用的指令,可以通过它查看任何模块中包含的工具
help(math.pow)
help函数可以帮助我们更好的理解函数的概念
python 金句: ( 变量无类型,对象有类型)
变量只是一个标签,所有没有类型之说,它不仅可以贴在整数类型的对象上,还能贴在其他类型的对象上,(即可以四处张贴的标签)
对象是有类型的,eg: str,int,float,list
括号分组子表达式
用()可以将表达式分组(),()内部的表达式先进行计算
练习:
1. 用交互模式计算:
1)一个商店,西瓜是7元一个,你带20元可以买几个西瓜,找零多少
# 一共20元钱,7元一个西瓜,一共可以买多少个西瓜
print("一共可以买: "+ str((20 // 7))+"个西瓜,剩余"+str((20 % 7) )+"元")
2)一个学生的毕业薪资是10000元每年涨20%,十年后他的薪资是多少啊
print("十年后的薪资是: " +str((10000*(1+0.2)**10)))
混合类型自动升级:
1 + 2.15 返回类型为浮点型 3.15
基本输出函数: print
格式:
print(要打印的东西)
# 练习: 1. 已知矩形的长边长为6cm,短边长为4cm,用表达式求周长和面积
print("周长: "+str((6+4)*2)+" 面积: "+str(4 *6 ))
# 方式2(
print("周长: ",(6+4)*2,"面积",4 * 6)
变量:
什么是变量
变量是关联一个对象的标识符
变量可以绑定一个对象,并可以通过变量名来使用这个对象的标识符的命名方法
标识符的命名方法
标识符必须为**字母**或**_开头**,后跟字母或下划线或数字说明
不能使用python的关键字做变量名
python变量名区分大小写
合法的变量名
a1 a bb _adsf adf
不合法的变量示例:
1q 123 #asb +a -nb
python 的关键字总共有33个
True,False,None.,is,del,if elif...
连接语句
语法:
变量名+变量名:
a = 100
b = 200
a + b #300
c="asjd"
a+c # Traceback (most recent call last):File "", line 1, in TypeError: unsupported operand type(s) for +: 'int' and 'str'
用法:
用"+"拼接起来的两个对象必须是同一种类型的,如果两个都是数字,毫无疑问是可以的就是求和,如果都是字符串会得到一个新的字符串,
补充:
str(a)函数:
实现将整数对象转换为字符串对象
repr(a)函数:
也可以是实现同样的效果
int(a)函数:
实现可以将str,float类型的对象转换为整数对象(默认去除小数点后面所有的数字,不进行四舍五入)
赋值语句
语法:
变量名= 表达式
或 变量名1 = 变量名2 = 变量名3
或 变量名1,变量名2,变量名3 = 序列
作用:
创建一个变量或修改一个变量的绑定的对象.
说明:
当变量不存在时,创建该变量,同时将变量绑定在这个对象上
当变量存在时,改变此变量绑定的对象
一个变量只能绑定一个对象
两个变量可以同时绑定在同一个对象上
示例:
a = 10
b = 20
a = b# a绑定在 b绑定的对象上,a与10 解绑,绑定在20上
r = 10
a = 6
b = 4
area = a * b # 等于area = 6 * 4
x = y =z = 1000
x,y = 100,200 # 等价于 x绑定100, y 绑定200
python 中自动化内存管理(重点)
a = 1000
b = 1000
a = a + b #
c = a # a 和c 同时绑定在2000上
del b # 当删除b时,b上的引用计数会减为0,会被回收
python 关联/绑定/引用 的含义
在python中,变量没有类型
关联/绑定/引用都是指一个变量 和 一个对象的关联关系
练习:
1. 指定一个半径 r = 3 cm的圆
1)计算圆的周长是多少厘米 length = (3.14 * 2 *3 )
2)计算圆的面积是多少平方厘米 area = 3.14*3**2
问?
a = 3
b = 4
a = a + b
a = a - b
b = a - b
在不创建任何新对象的情况下,如何让a和b交换绑定的对象
a = 1
b = 2
print("变换之前:",a,b)
注:在python中变量相当于贴在对象上的标签,这个操作只不过是将标签换了个位置,就分别指向了不同的数据对象
#方法0 (序列复制)
a,b = b,a
#方法1
a = a + b
b = a - b
a = a - b
print("变换之后",a,b)
#(方法2)
a = a^b
b = a^b
a = a^b
print("变换之后:",a,b)
交互模式下查看当前作用域内的所有变量
>>> help("__main__")
>>> help("__main__")
```
Help on module __main__:
NAME
__main__
DATA
__annotations__ = {}
a = 20
b = 10
x = 100
y = 200
z = 100
FILE
(built-in)
```
注: help函数用来查看帮助或运行时信息
del语句 (delete简写)
用于删除变量,同时解除此变量与对象的绑定关系 如果可能则删除对象
语法:
del 变量名
del a # 删除a变量,
自动化内存管理和引用计数
每个对象会记录有几个变量引用自身,当引用的数量为0时,此对象被销毁,此种自动化内存管理的方式即为引用计数
a = 10
b = 20
a = b # 释放10 的同时 将a绑定在20上
del a # 删除a变量,同时将20 引用计数-1
del b # 删除b变量,同时将20 删除
is/is not 运算符
作用:
判断两个对象是否是同一个对象,当是同一个对象时返回True,否则返回false
is not 的作用和is相反
语法:
x is y()
s is not y
小整数对象池:
CPython 中整数-5 至 256永远在小整数对象池中,不会释放并可重复使用
eg
```
x = 10
y = 10
x is y # True
a = 1000
b = 1000
a is b # False
```
id(x) 函数
作用:
返回一个变量在内存中的地址
练习:
1. 在终端中打印出如下图形(注: python3中print不换行可以加个参数end="")
*
***
*****
*******
```
for i in range (5):
a = i*2 +1
b = 10 -i
# 输入空格数
while (b >= 1):
print(" ", end="")
b = b - 1
#输入* 数
while( a >= 1):
print("*",end="")
a = a -1
print()
```
2. 中国的秤时16两一斤,请问中国古代的216两时古代的几斤几两?写程序打印出来
```
# 中国的秤时16两一斤, 请问中国古代的216两时古代的几斤几两?写程序打印出来
# 定义a 表示总两数
a = 216
# 定义两转换斤的进制
b = 16
# 输出结果
print("古代216两相当于:",216//16,"斤", 216%16, "两")
```
3. 从凌晨 0:0:0记时,到现在已经走过了63329秒,
请问现在是几时几分几秒?写程序打印出来
提示:可以用地板除和求余来实现
```
# 从凌晨 0:0:0记时,到现在已经走过了63329秒,
# 请问现在是几时几分几秒?写程序打印出来
# 提示:可以用地板除和求余来实现
a = 63329
h = a//(60*60)
m = (a-h)%60
s = a %60
print(h,":",m,":",s)
```
4. 温度转换:
摄氏度 = 5.0/9.0 * (华氏温度-32)
开氏温度 = 摄氏温度 + 273.15
问:
100华氏度温度转换为摄氏温度是多少度?
转为开始度是多少度?
```
hua = 100
s = (5.0 /(9.0*(hua-32)))
k = s+273.15
print(s,k)
``