面对对象:把构建问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。
面向过程:分析出解决问题所需的步骤,然后用函数把这些一步一步实现,使用的时候一个一个依次调用就可以了。
库、工具库、功能模块:standard library
对象:属性+方法。行为
从头至尾按照顺序一个一接一个地运行文件中的语句。
print("hello")
print("*"*20)
s=0
for i in range(100,10000):
s=s+55**i
print(s)
上述代码(1)输出hello,(2)输出20个* ,到(3)时运行次方,运行发现一行一行输出。
从目前的实现上来讲,python也是一个名为解释器的软件包。解释器是一种让其他程序运行起来的程序。当你编写了一段python程序,python解释器将读取程序,并按照其中的的命令执行,得出结果。实际上,解释器是代码与机器的计算机硬件之间的软件逻辑层。解释器会从头至尾按照顺序一个接一个地运行文件中的语句。
print("h"*3)
print(a)
print(12)
#运行结果
hhh
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/linshi/2.py", line 2, in <module>
print(a)
NameError: name 'a' is not defined
可以发现,第一行程序没有错误,输出结果,到第二行时发现a没有定义。此时报错。即python
因此,所有的事情都是在程序运行时发生的。
时间戳:字节码pyc----目录/文件夹__pycache__
双击运行一闪而过(闪退):input(),且input以字符串的形式为脚本返回一行读入的文本。
导入操作:本质上载入另一个文件,并给予读取那个文件内容的权限。模块的内容可以通过其属性(简单地说是绑定在特定的对象如模块上的变量名)从而被外部世界使用。
myfile.py
title="hello world!"
调用myfile.py
import myfile
print(myfile.title)
#结果:hello world!
myfile2.py
a="123"
b="456"
c="789"
print(a,b,c)
调用myfile2.py
import myfile2
print(myfile2)
print(myfile2.a)
#结果:123 456 789
# 123
restart:脚本进程重新启动以运行编辑的文本,并对脚本输出进行分割。
输入函数时会出现“气球帮助”。
import vs from:from语句在某种意义上战胜了模块的名称空间分隔的目的,因为from把变量从一个文件复制到另一个文件,这可能导致在导入的文件中相同名称的变量被覆盖,并且,如果发生这种情况的话,不会发出警告。这根本上会导致名称空间重叠到一起,至少在复制的变量上会重叠。
你可以控制问题,可以在from中列出想要的变量;只要你理解它们将被赋值为目标模块中的值,这不会比编写赋值语句更危险---这很可能是你想要使用的另一功能!
技术上讲IDLE是一个python程序,它使用标准库tkinter GUI工具箱来构建其窗口。当运行名称后插入".",然后停顿或按tab键,会有对象属性的弹出选择列表。在输入时,按下TAB键,单词自动补全。
模块←语句←表达式←对象:程序由模块组成;模块包含语句;语句包含表达式;表达式创建并处理对象。
python中没有类型声明,运行的表达式的语法决定了创建和使用的对象的类型。一旦创建了一个对象,它就和操作集合绑定。python是动态类型的(它自动地跟踪你的类型而不是要求声明代码),但它也是强类型语句(你只能对一个对象进行适合该类型的有效操作)。
unicode编码
数值
is:测试对象身份,即内存地址,严格意义上的等价性。is比较的是引用 a is b 如果为True,说明引用的是同一个对象。== 也一定为Ture。
== 比较的是数值 a == b 为True,只是说明值相等,a is b 不一定为True。
id(),返回的是对象在内存中的位置(不一定完全正确,可以这样理解)
id(a)= id(b) 为True,说明是同一个对象
知识点:垃圾回收机制,引用计数器等
混合运算时:混合类型向上转换。
多态:操作的意义由操作对象来决定的。
变量:(1)第一次赋值时被创建(2)变量在表达式中使用时,会被替换成它们的值(3)在表达式使用之前,必须已被赋值(4)变量引用对象,而且从不需要事先声明
普通比较、链接比较
小数类型(import decimal)、分数类型(from fractions import Fraction)
True与False的行为与整数1和0是一样的,只不过它们有独特的显示逻辑,它们是作为关键字True和False显示的,而不是数字1和0。True+4=5
Python中类型是运行时自动决定的,而不是通过代码声明。
变量的概念存在于对象而不是变量名中。变量原本是通用的,它只是在一个特定的时间点,简单地引用一个特定的对象而已。变量和对象保存在内存中的不同部分,并通过连接相关联。即变量名→通过引用→对象,如变量a→3,中间的“→”相当于引用的过程。在内部,变量事实上是到对象内存空间(通过运行常量表达式3而创建)的一个指针。以具体的术语来讲:
变量是一个系统表的入口,包含指向对象的连接;
对象是被分配到的一块内存,有足够的空间去表示它们所代表的值;
引用是自动形成的从变量到对象的指针。
每个对象都有两个标准的头部信息:类型标志符(type designator)标识这个对象的类型;引用计数器(reference counter)决定何时回收这个对象。
类型属于对象,而不是变量。如a=3,变量a没有类型,类型属于对象3。
共享引用:如a=3,b=3,