第一次课---Python
1.是解释型,面向对象的语言
2.特点
可读性强,简洁,C语言开发,面向对象,免费和开源,可移植性和跨平台,丰富的库,可扩展型(课嵌入C和C++)
3.应用范围
科学计算,人工智能,web服务端和大型网站的后台,GUI开发,游戏开发,移动设备,嵌入式设备,系统运维,大数据,云计算
4.缺点
是解释执行,性能较低
5.在cmd中退出python----quit(),中断执行:ctrl+c,交互模式:在cmd中输入idle,就会出现python-shell,就可以在这里进行编程了
注意:
在写python代码时,不要在行开头使用空格,因为在python中空格有缩进组织结构的意思
6.程序基本格式
1.恰当的空格,缩进问题
(1).逻辑行首的空白(空格和制表符)用来决定逻辑的缩进层次,从而用来决定语句的分组
(2).语句从新的第一列开始
(3).缩进风格统一
1.每个缩进层次的使用,单个制表符或四个空格(IDE)会自动将制表符设置为4个空格
2.Python用缩进而不是{}表示程序块
2.Python区分大小写
3.注释
1.行注释-----使用#
2.段注释-----使用'''注释的内容''',即三个单引号开始,三个单引号结束
海龟绘图
奥运五环图
Python程序的构成
1.Python程序有模块组成。一个模块对应Python源文件,一般后缀为.py
2.模块由语句组成。运行python程序时,按照模块中语句的顺序依次执行
3.语句是python程序的构造单元,用于创建对象,变量赋值,调用函数,控制语句等
Python中的行连接符-----"\"
一行程序长度是没有限度的,但是为了可读性更强,通常将一行比较长的程序分为多行,使用"\",python解释器仍然将它们解释为同一行
Python----对象
python中,一切皆是对象。每个对象由:
标识,类型,值组成
1.标识用于唯一标识对象,通常对应于对象在计算机内存中的地址,使用内置函数id(obj)可返回对象obj的标识
2.类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型
3.值表示对象所存储的数据的信息。使用print(obj)可直接打印出值
对象的本质:一个内存块,拥有特定的值,支持特定类型的相关操作
引用
在Python中,变量也成为:对象的引用,因为变量存储的就是对象的地址。变量通过地址引用了“对象"
变量位于:栈内存
对象位于:堆内存
python是动态类型语言
变量不需要显式的声明类型,根据变量引用的对象,python解释器会自动确定数据类型
python是强类型语言
每个对象都有数据类型,只支持该类型支持的操作
标识符
用于变量,函数,类,模块等的名称
1.区分大小写
2.第一个字母必须是字母或下划线,其后的字符可以是字母,下划线,数字
3.不能使用关键字
4.以双下划线开头和结尾的名称通常由特殊的含义,尽量避免使用这种写法,如_int_是类的构造函数
规则:
模块和包名---全小写字母,尽量简单,多个单词之间用下划线
函数名--------全小写字母,多个单词之间用下划线隔开
类名----------首字母大写,采用驼峰原则,多个单词之间,每个单词第一个字母大写
常量名--------全大写字母,多个单词使用下划线隔开
变量
变量的声明和赋值用于将一个变量绑定到一个对象,格式如下:
变量名 = 表达式
a = 33; //运行的过程中,解释器先运行右边的表达式,生成一个代表表达式的运算结果的对象,然后,将这个对象地址赋予给左边的变量
删除变量:
del a #这只是将对象的地址在变量a所代表的栈中删除了,即这个对象的地址不赋给a了,这个对象本身的值”33“还在堆内存中,等待python中的垃圾回收机制进行回收
链式赋值
x,y = 1,2 #相当于x =1,y = 2
x,y = y,x #变量交换
常量
python不支持常量,即没有语法规则限制改变一个常量的值。我们只能约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改
python中的基本类型,python支持的类型有:
1.整型
2.浮点型 3.14或者314e-2(科学计数法)
3.布尔型
4.字符串型
整数/浮点型的基本运算符
+ - * %
整数取整://
浮点数取整:/
幂 **
divmod(a,b)---即取整又取余
从上面的答案和下面的答案可知,divmod只对整数有用
整数---int
进制:十进制
二进制(0b或0B---0,1)
八进制(0o或0O---0,1,2,3,4,5,6,7)
十六进制(0x或0X---0,1,2,3,4,5,6,7,8,9,a,b,c,d,f
二,八,十六可以非常方便的进行"位运算"
int()---实现类型转换
浮点型:直接去掉小数部分
布尔值:true---1,false---0
字符串:数字型(必须是整数,浮点数不行)---直接转换为对应的整数,否则报错
自动转换---当整数与浮点数进行运算时,表达的结果会直接转换成浮点数
整数可以多大?----在python3中int可以存储任意大小的整数,而Long被取消,即python3可以做超大数的计算,而不会造成"整数溢出",这也是python特别适合科学运算的特点
浮点数---float
使用科学计数法表示 3.14--314e-2,在内存中也是使用科学计数法
float()实现类型转换
整数:与浮点数进行混合计算时,会自动转换为浮点数
布尔型:True--1.0 False--0.0
字符型:整型/浮点型---都可以转换为浮点型,否则都不可以
增强型赋值运算符
+=,-=,/=,//=,%=,**=
时间的表示---time.time()
计算机中时间表示开始:1970.1.1 00:00:00,以毫秒进行计算,返回带微秒(1/1000毫秒)精度的浮点数
例子---定义多点坐标_绘出折线_并计算起始点和终点距离
两个对象---turtle,math
布尔值
python3中,关键字Ture--1,false--0,其本质还是1,0,可以和数字进行数值运算
比较运算符---返回值1为真,0为假,这与True,False等价
== , !=,>=,<=,>,<
逻辑运算符
or,and,not---使用: x or y,x and y,not x
同一运算符
is , is not-------x is y ,x is not y-----判断两个对象的地址是否相同(id),即x,y两个变量指向的对象的地址是否相同,即相同,则x,y引用的是同一个对象,否则引用的是不同的对象
is与”==“的区别
1.is用来判断两个变量是否引用的是同一个对象
2.判断变量指向的对象中的值是否相等
整数缓存问题
python仅仅对比较小的整数对象进行缓存(范围[-5,256])缓存起来,而非是所有整数对象,需要注意的是,这仅仅是在命令行中执行,而在Pycharm或者保存为文件执行,结算结结果是不一样的,这是因为解释器做了部分优化(范围[-5,任意正整数])
注意:
1.按位翻转的结果位: -(x+1)