1.下划线(_)在解释器中有特殊的意义,表示最后一个表达式的值:
>>> a = "Hello world" >>> a 'Hello world' >>> _ 'Hello world' >>> b = "你好" >>> _ 'Hello world' #因为b还没被引用呢! >>> b '你好' >>> _ '你好'
2.Python 是动态类型语言, 也就是说不需要预先声明变量的类型。 变量的类型和值在赋值 那一刻被初始化。变量赋值通过等号来执行。
>>> count = 2 >>> price = 2.5 >>> name = 'xiao' >>> type(count) <class 'int'> >>> type(price) <class 'float'> >>> type(name) <class 'str'> >>>
3.Python支持五种基本数字类型
int (有符号整数)、long (长整数)、 bool (布尔值)、float (浮点值)、complex (复数)
4.错误与异常处理:
要给你的代码添加错误检测及异常处理,只要将它们封装在try-except语句当中。try之后的代码组,就是你打算管理的代码。except之后的代码组,则是你处理错误的代码.
5.模块:
可以自己创建头文件(类似于c中的“.h”文件)
import module_name module_name.function() #function() 为module_name内的函数
每一个Python脚本文件都可以被当成是一个模块。模块以磁盘文件的形式存在。当一个模块变得过大,并且驱动了太多功能的话,就应该考虑拆一些代码出来另外建一个模块。模块里的代码可以是一段直接执行的脚本,也可以是一堆类似库函数的代码,从而可以被别的模块导 入(import)调用。
6.专用下划线标识符:
_xxx不用'from module import *'导入
__xxx__系统定义名字
__xxx 类中的私有变量名
7.python编程风格:
# (1) 起始行(通常只有在类Unix环境下才使用起始行,有起始行就能够仅输入脚本名字来执行脚本,无需直接调用解释器)
# (2) 模块文档
# (3) 模块导入
# (4) 变量定义(这里的变量是全局变量,除非必须,否则就要尽量使用局部变量代替全局变量)
# (5) 类定义
# (6) 函数定义
# (7) 主程序
8.垃圾收集
不再使用的内存会被一种称之为垃圾收集的机制释放。虽然解释器跟踪对象的引用计数,但垃圾收集器负责释放内存。它是一块独立的代码,用来寻找引用计数为0 的对象。同时也负责检查那些虽然引用计数大于0但也应该被销毁的对象。特定情形会导致循环引用。
9.对象(一切皆对象):
9.1 三特征:身份、类型、值;
>>> a = 123 >>> type(a) <class 'int'>#类型 >>> id(a) 1442046032#身份 >>> a 123#值
9.2 is和is not运算符来测试两个变量是否指向同一个对象:
>>> a=1+1 >>> b = a # b指向a所指向的对象(即值为2,类型为int,的a变量的值,就是相当于给对象再粘个标签) >>> id(a) 1442044096 >>> id(b) 1442044096 #地址一样的 >>> del a #一个标签没了,另一个还有的 >>> b 2 #通过标签能不能改变量呢? >>> a = 1+1 >>> b = a >>> b = 5 >>> a 2 >>> b #不能啊哈哈! 5 >>> id(a) 1442044096 >>> id(b) 1442044144 >>> c= 5 >>> id(c) 1442044144 #应该是不同的值对应的id不一样 (数字为后面说的不可变类型) >>>
>>> a is b
False #a与b值不同了,id不一样了,值不一样了,就是false
9.3 可变类型与不可变类型(内容是否可变):
9.3.1 可变类型(列表,字典):
#列表
>>> a = [1,2,3,4] >>> id(a) 62452400 >>> a[0] = 10 >>> id(a) 62452400 #列表a的值变了,但是id没变 >>> b = [1,2,3,4] >>> id(b) 62452680 #创建了个和原来的a一样的列表,但是明显id已变,是不是原来的a被回收了呢? >>> c = [10,2,3,4] #创建了个和现在a相同的列表 >>> id(c) 62181248 #但是呢,结果还是改变了! >>> a [10, 2, 3, 4] >>>
#结论就是:
#1.列表即使值相同,也不是存储在同一个地方
#2.同一个列表,改变其某个元素的值,列表地址不变
#字典
>>> a = {1:"a",2:"b",3:"c"} >>> id(a) 57524272 >>> a[1] = "c" >>> id(a) 57524272
#结论:字典内容改变,但是id不变
9.3.1 不可变类型(元组,字符串,数字):
#元组
>>> a = (1,2,3,4) >>> id(a) 61994736 >>> b = (12,) >>> id(b) 62170160 >>> a +b (1, 2, 3, 4, 12) >>> id(a+b) 62069328
#结论:元组的地址改变了
#字符串
>>> a = "123456"
>>> id(a)
62170208
>>> a = "456"
>>> id(a)
62380416
>>>
#结论:字符串id改变了
变量后面跟一个小数点,小数点后面就是它的属性或方法,带括号的是方法,不带的就是属性。
9.3.2 易混系列:
>>> a = (1,2,3,4) >>> b = (1,2,3,4) >>> a is b False >>> a = 1 >>> b = 1 >>> a is b True >>> a = "123" >>> b = "123" >>> a is b True >>> a = {1:"a",2:"b",3:"c"} >>> b = {1:"a",2:"b",3:"c"} >>> a is b False >>> a == b True >>> a = [1,2] >>> b = [1,2] >>> a is b False
# 结论:
#1.只有数字和字符串在元素相同时候,指向的是同一个对象
#2.== 与 is 区别就是。==是判断的值是否相同,而is是判断整个对象
10.input与raw_input:
input():python3.x 有的(我安装的也是,推荐使用)
raw_input():python2.x
>>> name = input("输入姓名:") 输入姓名:123 >>> name '123' >>> type(name) <class 'str'> >>> name = int(input("输入姓名:")) 输入姓名:123 >>> type(name) <class 'int'>
#结论:input默认接收的都是字符串
11.数学函数:
函数 | 返回值 ( 描述 ) |
---|---|
abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 |
cmp(x, y) |
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换。 |
exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) | 返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,...) | 返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,...) | 返回给定参数的最小值,参数可以为序列。 |
modf(x) | 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
pow(x, y) | x**y 运算后的值。 |
round(x [,n]) |
返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。 其实准确的说是保留值将保留到离上一位更近的一端。 |
sqrt(x) | 返回数字x的平方根。 |
参考地址:
https://www.cnblogs.com/jianjianyang/p/5733017.html
https://www.cnblogs.com/jianjianyang/p/5736160.html
https://www.cnblogs.com/jianjianyang/p/5755610.html
https://blog.csdn.net/weixin_38145317/article/details/94741218