python基础用户交互式、变量、垃圾回收机制

一、两种运行Python程序的方式

  1.交互式

    优点:输入内容立刻就有对应的返回结果

    缺点:无法永久保存数据

    在Python3中:input会将用户输入的内容都存为字符串类型

    在Python2中:raw_input用法与python3中input一样

username = input("请输入您的账号名:")
print(username)

  2:命令行(文件的形式)

    优点:可以永久保存数据

    缺点:暂时来看运行该文件优点麻烦

    运行一个py文件需要走的步骤
        
1.将python解释器代码从硬盘读到内存。
        2.将你写好的py文件有硬盘读到内存。
        3.解释器解释读取py文件中的内容,解释成计算机能够识别的语句
        (如果是一个普通文本文件,仅仅只会将文件内容展示到屏幕上给用户查看,不会检测翻译文件内容)
        ps:python解释器和普通的文本编辑器前面两步是一样的,仅仅第三步不一样(一个是解释语法,一个是文本展示)

 

二、变量

  变量的三要素

    1.id():返回的是一串数字,这一串数字你可以直接理解为内存地址
       2.type():返回的是该变量对应的数据的类型
       3.value:该变量指向的内存当中数据的值

  变量名的命名规则:

    1:只能用字母数字下划线

    2:不能以数字开头

    3:不能用关键字命名变量名

    例如以下关键字不能命名变量

"""

['and',  'as',  'assert',  'break',  'class',  'continue',   'def',   'del',   'elif',  'else',   'except',  'exec', 'finally', 'for', 'from', 'global', 'if',  'import',  'in',  'is',   'lambda',  'not',  'or',  'pass',  'print',    'raise',   'return',  'try',   'while',  'with',  'yield']

"""

    注意:    

      命名尽量一看就知其意有具体的含义,尽量别用拼音或中文#

      命名规则流派驼峰体和下划线(前端推荐:userName   python使用:user_Name_out)

      常量:不可变更的量 Eg:pai=3.1415926   python里默认纯大写的变量名为常量改写需慎重

 

三、“==”和“is“的区别

#1 "=="比较的是value,
#2 is比较的是id
 id相等value一定相等,但value相等id不一定相等

#注意
#1. id相同,意味着type和value必定相同
#2. value相同type肯定相同,但id可能不同

 

四、垃圾回收机制

  1、引用计数:内存中的数据如果没有任何的变量名与其有绑定关系,那么会被自动回收

x = 10  # 直接引用
# print(id(x))
# y = x
# z = x

l = ['a', 'b', x]  # 间接引用
# print(id(l[2]))  

d = {'mmm': x}  # 间接引用

# print(id(d['mmm']))


# x=10
# l=['a','b',x] # l=['a'的内存地址,'b'的内存地址,10的内存地址]
#
# x=123
# print(l[2])
#
#
# x=10
# x=[10,]
#
# l=['a','b',10]

# l=['a','b',10]

  2、标记清除:当内存快要被某个应用程序占满的时候,会自动触发

# 循环引用=>导致内存泄露
l1=[111,]
l2=[222,]

l1.append(l2) # l1=[值111的内存地址,l2列表的内存地址]
l2.append(l1) # l2=[值222的内存地址,l1列表的内存地址]

# print(id(l1[1]))
# print(id(l2))

# print(id(l2[1]))
# print(id(l1))

# print(l2)
# print(l1[1])

del l1
del l2

  3、分代回收:根据值得存活时间的不同,划为不同的等级,等级越高垃圾回收机制扫描的频率越低。用来降低引用计数的扫描频率,提升垃圾回收的效率

posted @ 2022-03-24 22:05  新入世界的小白  阅读(51)  评论(0编辑  收藏  举报