Python 基础扫盲

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://blog.csdn.net/zcx1203/article/details/89187495?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

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

https://www.runoob.com/python3/python3-number.html

https://www.cnblogs.com/wangkun122/p/9082088.html

 

posted @ 2020-04-03 15:57  落月_YU  阅读(252)  评论(0编辑  收藏  举报