第一天
第一部分 准备工作
一、计算机入门知识
1. 语言:进行沟通的方式
计算机语言:跟计算机沟通的方式
2. 机器语言:计算机能够识别的语言。二进制(0,1)。高电位 低电位
汇编语言:助记符 add a b 低级的语言
高级语言:java python php c c++ .net go
3. 计算机的语言执行方式分:
编译执行:被编译一次之后,编译成二进制,下一次再执行直接执行二进制文件。
可移植性差。但是执行效率高。适合情况:windows,底层的,不经常修改需求的系统。
解释执行:每次运行都会解析一次原码,运行效率低,但是可移植性好。
适合的情况:开发网站,办公系统...需求经常修改开发
二、python简介
1.python历史
(1) 荷兰的龟叔 教学语言ABC 失败, 不是开源的
1989 圣诞节 python ,弥补ABC 不足, 实现在ABC 中没有实现的理想。
python是巨蟒, 飞行的马戏团
(2) 为什么现在才开始火?
机器学习---facebook出的工具torch ---python出了python ----python彻底火了
2. python的版本
2x
到2.7之后就不更新
3x,python社区主动推行3x:摒弃2里面的设计缺陷
3.python的特点
存在即合理
(1)语言简洁 :人生苦短,我用python
(2)面向过程、面向对象
(3)解释执行的语言:跨平台
(4)扩展性强:胶水语言
(5)强大的库进行支持
4.python的缺点
(1)速度
(2)原码不能加密
5.应用领域
(1)web开发:django
(2)网络爬虫
(3)数学分析科学计算
(4)游戏编程
(5)人工智能
三、安装
1. python的安装
注意:勾选 add path
2.开发工具的安装pycharm
四、环境变量
是操作系统中路径的集合
操作系统中的特殊信息,为了进行区分,不同的环境变量取不同的名字
path环境变量,记录的是可以直接找到exe可执行文件的路径
可以通过echo %path% 命令查看path的所有内容
可以通过set path=路径,进行添加路径。 但是这种方式,当关掉窗口之后,就会失效了。
通过图形界面:环境变量,进行永久修改。
五、python的执行
1. 交互:先使用python命令,调用python解释器,再输入python命令进行执行
程序是一行一行执行的,执行完成之后,等待下次输入
2. 脚本:把代码都放在一个脚本(.py)文件
执行的实行,输入python,调用解释器,输入文件名(注意,文件必须在命令执行的路径下)
python 路径文件名.py
说明:
交互执行和脚本执行的区别:
交互模式相当于一行一行的执行源代码,每输入一行就执行一行
脚本模式相当于启动python解释器之后,一次性的把py文件(源代码)执行,没有机会进入人机交互
第二部分 变量+常量
一、变量
1.变量的定义和内存结构
变量:变量用来使用指定的名字绑定特定的值
格式:变量名 = 变量值
注意:= 不是数学意义上的等号,而是赋值的概念
变量值赋予变量名
使用变量名绑定了变量值
其他语言里:变量赋值的过程,可以看成是把变量存储在一片内存中,这一片内存就是变量,静态语言
python:变量赋值可以看成给变量贴标签的过程
当我们去写
a="ABC" python解释器:做两件事:
1.在内存中创建"ABC"
2.再创建一个a,并且把a指向ABC
2.多个变量指向同一个内存地址
python 基于值的内存管理,不同变量绑定相同的值,内存中对于不可变类型来说,只有一份值
3.修改变量绑定
一个变量一次只能绑定一个值。如果修改这个变量的绑定,跟原来的值进行解绑
python是弱类型语言,一个变量可以绑定多种类型的值
4.同时为多个变量进行赋值
a=b="abc"
5.变量定义的注意事项:
(1)英文、数字和_组合, 数字不能开头。标识符。
(2)变量在使用之前必须命名,变量只有被赋值之后才能在内存中被创建
6.变量的删除
删除的是变量名,不是变量值
二、常量
1. 普通变量
说不能变,定义常量的规则,将变量名全部大写
PI=3.1415926
2. None类型NoneType
内置常量,表示变量值的缺失
使用场景:在定义变量时,必须给变量一个明确的值的时候,会使用None来定义
None绝对不是空串,也不是0
第三部分 输入输出
输出 print, 会自带换行\n
在ptint 中设置end会设置print默认的结束符号,默认结束符号是\n
print("hello world","java","python",end="")
print("goodbye")
使用sep 设置分隔字符,分隔的是每一个,的内容
print("x","y","z",sep="-")
输入 input(提示信息),阻塞状态的函数,执行input之后,程序会等待输入
i=input("请输入内容:")
print("刚才输入的内容:",i)
注释:都不经过python解释器解释
单行注释
使用# 注释一行内容,从#开始,一直到本行结束,都属于注释的内容
特殊注释:用来设置python解释器的位置,习惯上放在文件的第一行
内容:用来设置python解释器的位置
#!/usr/bin/python3 一般情况会在此路径下
#!/usr/bin/nev python3 :从你的path环境变量中来搜索python3文件
内容:设置文件编码
python3默认是utf-8
python2默认的是ASCII
#-*-coding:utf-8-*-
特殊的注释,不会被python解释器忽略
标识符和关键字
标识符:包括变量、函数、方法
注意:标识符不能跟关键字重名
标识符区分大小写
关键字:python中具有特殊语义的符号。
**map(函数,迭代对象):把迭代对象中的每一个元素都按照函数执行
def a(x): return x + 1 b = map(a,[1,2,3,4,5]) print(list(b)) def map_new(func,seq): a = [] for i in seq: i+=1 a.append(i) return a b=map_new(a,[1,2,3,4,5]) print(b)
第四部分 数值类型
1.整型 int
定义
a=(1)
b=1
print(type(a),type(b))
取值范围
python语言其实分为整型和长整型,
python中int c语言中long 取决于机型,32位机器 -2^31 2^31-1
长整型 可以看成是无限大,其实是计算处理不了,其实到了界限
python2.2版本开始,如果发生溢出,,会自动将整型转换为长整型
查看当前机型最大的整数值。
import sys
i=sys.maxsize
print(i)
**四种进制,逢n进位
二进制(使用0b或者0B作为前缀)
八进制(0o或者0O)
十进制(无前缀)
十六进制(0x或者0X)0-9还是使用0-9,10-15使用a或者A 到f或者F
* 进制的转换
1,其他进制转换成十进制
乘幂
2,十进制转换成其他进制
下除法:除数是进制,最后的商,所有的余数拼接
bin()转换成二进制
int()转换成十进制
oct()转换成八进制
hex()转换成十六进制
3,其他进制之间的转换
*二进制和八进制 每三位作为一个位
*二进制和十六进制 每四位作为一个位
注意转换函数之后获得的数据类型
除了int获得的返回自是数值类型int以外,其他都是str字符型
int还可以将字符串转换成数值类型int类型
print(int("111"))
#print(int("111.1"))
如果字符串不能转换成整型,那么会报错
int()函数可以指定进制,如果不指定,默认按照十进制输出
第一个参数,字符串
指定的方式,在int中第二个参数指定2,、8、16
print(int("100,2"))
# print(int("120,2")) # 使用的时候要注意,如果指定进制,对应的数字必须符合指定进制的规范,否则无法转换
布尔类型bool-----整数类型int的子类型
两个值True 真 整数1 False 假 整数0 注意大小写
*布尔类型虽然可以当成1和0参与运算,但是一般不用这样使用
# 应用
1.运算符 关系运算符
2.条件 if for while
# 浮点型 float,只支持十进制
# i=01 #定义整型的时候,不能在数值前加0
浮点类型定义时,可以在前面加0
# 科学计数法: 把10 使用e代替
1.23*10^9
取值范围:浮点数不是无界限,
inf代表无限大 -inf 代表无穷小
*输出浮点数的范围
import sys
print(sys.float_info.max)
print(sys.float_info.min)
特殊的浮点数: inf 代表无穷大 NaN(not a number)
NaN 跟谁都不相等, 跟自己也不相等
print(float("nan"))
x=float("NaN")
print(3==x)
print(x==x)
可以通过math函数中的isnan方法判断当前变量是不是nan
import math
print(math.isnan(x))
浮点数的不精确性
print(10/3) #浮点数只能取计算机近似的数
# 使用浮点数时要注意
1.不能将两个数量级别差别很大的浮点数进行计算
2.尽量避免进行等量的判断
# 解决不精确性,decimal类型
import decimal
x=decimal.Decimal(0.1)
print(x)
y=decimal.Decimal(0.2)
print(y)
# 使用字符串进行运算达到浮点的精确计算
x=decimal.Decimal("0.1")
y=decimal.Decimal("0.2")
print(x+y) #运算时才能有效?
#浮点数默认是有28位有效数字,可以使用上下文环境修改有效位数
Context=decimal.getcontext()
Context.prec=10
x=decimal.Decimal(0.1)
y=decimal.Decimal(0.2)
print(x+y)
# 复数类型complex 实部+虚部
# 需要注意: 实部和虚部浮点类型
# 四种类型之间的转换
"""
int(参数) 能把其他类型转换成整数类型 如果不给参数,默认输出0
float(参数) 转成浮点类型 默认输出0.0
complex(参数) 转成复数类型 默认输出0+0j
bool(参数)转成布尔类型 默认输出false
"""
f=0.1
i=0
c=1+2j
b=False
print(int())
print(float())
print(complex())
print(bool())
print(int(f)) #当将浮点类型转换成整型,直接截断
# print(int(c)) #不能把复数类型转换成整型
print(int(b)) #原来是False---0 True----1
print(float(i)) #直接。0
# print(float(c)) #不能把复数类型转换成整型
print(float(b)) #False---0.0 True---1.0
# complex可以将任何一个类型转换成复数类型
print(complex(i))
print(complex(f))
print(complex(b))
#bool 布尔类型可以对任何类型进行转换
print(bool(i)) #将整型转换成布尔类型, 0False,其他都是True
print(bool(i)) #0.0False 其他都是True
print(bool(i)) #0j False其他都是True