Python系列之 - 入门基础知识笔记

冯诺依曼架构

    控制器
    运算器
    存储器
    输入设备 (I)
    输出设备 (O)

    CPU——控制器,运算器 # 运算器只与内存交换数据
    内存——存储器
    硬盘——输入设备,输出设备(向存储器输入数据,写入存储器输出的数据)
    键盘,鼠标——输入设备(向计算机输入指令
    显示器,打印机,音响等——输出设备

冯诺依曼体系
python的语言类型

python是动态语言,强类型语言

    静态编译语言
        事先声明变量类型,类型不能更改
        编译时检查

    动态编译语言
        不用事先声明类型,随时可以赋值为其他类型
        编程时不知道是什么类型,很难推断(编译时无法检查,只有运行时才能检查)

    强类型语言
        不同类型之间操作,必须先强制类型转换为同一类型

    弱类型语言
        不同类型之间可以操作,自动隐式转换

基础语法
基础数据类型
注释

由符号#标注的文字
数字

扫描二维码关注公众号,回复: 4855402 查看本文章

    整数 不区分短整型和长整型
        进制 :二进制(0b01),0o10,十六进制(0xa)
        布尔型 : True 、False

    浮点数
        1.2、3.1415、-0.12、146e9等价于1.46*10 9次方

    复数
        1+2i,1-2j

字符串

    使用’ "单双引号引用的字符的序列
    ‘’'和”””单双三引号
    字符串前加R或r则该字符串不做特殊处理(转义字符无效)

转义字符

    \ ,\t,\r,\n,’,"
    tab:制表符,用在对齐打印,通常为了补足4个字符或者8个字符
    \n:相当于enter, new line,下一行

缩进

    舍弃了C等语言的花括号,用缩进代替层次关系
    约定使用4个空格缩进

续行

    在行尾使用\
    如果使用各种括号,认为括号内是一个整体,内部跨行不用
    标识符

运算符
算术运算符
运算符     含义     示例
+     加     1+2=3
-     减     3-1=2
*     乘     2*2=4
/     除     9/3=3.0
%     取模     5%2=1
**     指数运算     3**2=8

    整除:返回除法的余数

    自然除/结果是浮点数,整除//。

位运算符

    & | ~ ^ << >>
        &(与):二进制的按位的相乘
            0b1101 &
            0b0001
            =0b0001
        |(或):按位相加(按位相加不进位,0b10|0b11=3)
        ~:按位取反
        ^:按位异或
        <<:
        >>:

    常用方式:乘除2的倍数,32//8相当于32>>3
    bin(32)=0b100000 往右走3位 结果为0b100
    12,0xc,0o14,0b1100

比较运算符
符号     含义     示例
==     等于     a == 3
!=     不等于     a != 3
>     大于     5 > 2
<     小于     7<13
>=     大于等于     a >= 2
<=     小于等于     b <= 7

    返回一个bool值
        1<‘1’(报错) 1==‘1’(False)
        链式比较操作符
        4>3>2

逻辑运算符

    与或非 and or not
        短路运算符
            and 如果第一个表达式为False,则表达式一定为False
            or 如果第一个表达式为True ,则表达式一定是True

赋值运算符

a = min(3,5)
+= (a=a+4等价于a+=4)
-=
*=
/=
//=
%=
成员运算符

    in,not in

身份运算符

    is , is not

运算符优先级

    单目运算符>双目运算符
    算数运算符>位运算符>身份运算符>成员运算符>逻辑运算符
    记不住,用括号,
    长表达式,多用括号,易懂,易读

表达式Expression

    由数字,符号,括号,变量等的组合
    算数表达式
    逻辑表达式
    赋值表达式

    Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义

内存管理

    变量无需事先声明,也不需要指定类型
    python编程中一般无须关心变量的存亡,也一般不用关心内存的管理
    python使用引用计数记录所有对象的引用数

        当对象引用数变为0,他就可以被垃圾回收GC

            计数增加:
                赋值给其他变量就增加引用计数,例如x=3;y=x;z=[x,1]
                实参传参,如foo(y)

            计数减少:

                函数运行结束时,局部变量就会被自动销毁,对象引用计数减少

                变量被赋值给其他对象,例如x=3;y=x;4

    有关性能的时候,就需要考虑变量的引用问题,但是该释放内存,还是尽量不释放内存,看需求

查看引用计数

import sys

x = [ ]
print(1,sys.getrefcount(x))
print(2,sys.getrefcount([]))
y = x
print(3,sys.getrefcount(y),sys.getrefcount(x))
x = 5 #注意字面常量
print(4,sys.getrefcount(y))
print(5,sys.getrefcount(x))
   
z = 5
print(6,sys.getrefcount(x))

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

1 2
2 1
3 3 3
4 2
5 449
6 448
---------------------  
作者:Xiao.H  
来源:CSDN  
原文:https://blog.csdn.net/weixin_37687644/article/details/85557572  
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/u011537073/article/details/85754526