python入门之垃圾回收机制、用户交互、算术运算符

1、垃圾回收机制详解
  • 引用计数

    引用计数:记录指向对象引用的个数

    x=10l=[‘a‘,‘b‘,x] # l=[‘a‘的内存地址,‘b‘的内存地址,10的内存地址]

    引用分为直接引用和间接引用

    直接引用:变量值的内存地址直接指向变量名

    x = 10

    间接引用:变量值的内存地址直接指向变量名,变量名作为一个元素,存储在容器中(list/dict)

    x = 11y = [5,x]
  • 标记清除:用来解决循环引用带来的内存泄露问题

    标记清除就是用来清除循环引用情况下引用计数无法清除的垃圾,python解释器县扫面栈区中存活的变量,堆区里面只保留存活变量相关的数据。

  • 分代回收:用来降低引用计数的扫描频率,提升垃圾回收的效率
2、与用户交互
  • 接收用户输入

    在Python3中:

    使用input将用户输入的所有内容都存成字符串类型

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

    在Python2中:

    raw_input():用法与Python3的input一模一样 input(): 要求用户必须输入一个明确的数据类型,输入的是什么类型,就存成什么类型

  • 格式化输出

    目的:格式与内容分离,制作复杂的字符串内容模板,让某些位置变成动态可输入的。

    2.1%

    # 值按照位置与%s一一对应,少一个不行,多一个也不行res = "my name is %s my age is %s" %(‘yu‘,18)info = "my name is %s my age is %s" %(55,‘yu‘)data = "my name is %s" %‘yu‘print(res \n info \n data)?输出结果:my name is yu my age is 18 my name is 55 my age is yu my name is yu?# %s可以接收任意类型print("my name is %s" %‘11‘)print("my name is %s" %‘我爱你‘)print("my name is %s" %[1,12])print("my name is %s" %{‘a‘:1})print("my name is %d" %‘18‘) # %d只能接受int类型?输出结果:my name is 11my name is 我爱你my name is [1, 12]my name is {‘a‘: 1}my name is 18

    2.2 str.format:兼容性好,可按照位置传值,也可以打破位置的限制传值

    # 按照位置传值 res = "my name is {} my age is {}".format(‘yu‘,18)print(res)?输出结果:my name is yu my age is 18?res=‘我的名字是 {0}{0}{0} 我的年龄是 {1}{1}‘.format(‘egon‘,18)print(res)?输出结果:我的名字是 egonegonegon 我的年龄是 1818?# 打破位置传值res = "my name is {name} my age is {age}".format(name=‘yu‘,age=18)print(res)?输出结果:my name is yu my age is 18?
    # 了解知识?2.4 填充与格式化?# 先取到值,然后在冒号后设定填充格式:[填充字符][对齐方式][宽度]?# *<10:左对齐,总共10个字符,不够的用*号填充?print(‘{0:*<10}‘.format(‘开始执行‘)) # 开始执行******?# *>10:右对齐,总共10个字符,不够的用*号填充?print(‘{0:*>10}‘.format(‘开始执行‘)) # ******开始执行?# *^10:居中显示,总共10个字符,不够的用*号填充?print(‘{0:*^10}‘.format(‘开始执行‘)) # ***开始执行***?2.5 精度与进制?print(‘{salary:.3f}‘.format(salary=1232132.12351))  #精确到小数点后3位,四舍五入,结果为:1232132.124print(‘{0:b}‘.format(123))  # 转成二进制,结果为:1111011print(‘{0:o}‘.format(9))  # 转成八进制,结果为:11print(‘{0:x}‘.format(15))  # 转成十六进制,结果为:fprint(‘{0:,}‘.format(99812939393931))  # 千分位格式化,结果为:99,812,939,393,931

    2.3 f:python3.5以后才推出

    x = input(‘your name: ‘) # yuy = input(‘your age: ‘) # 18res = f‘我的名字是{x} 我的年龄是{y}‘print(res) # 我的名字是yu 我的年龄是18
3、基本运算符
  • 算数运算符:+、-、*、/、//、%、**

    print(1+1.2) # 2.2
  • 赋值运算符
    • 变量的赋值:=

      x = 1print(x) # 1
    • 增量赋值:+=、-=、*=、/=、//=、%=、**=
      age = 18?age += 1?print(age) # 19
    • 链式赋值
      x = y = z = 1?print(x,y,z) # 1 1 1 
    • 交叉赋值
      name = 18?age = ‘yu‘?name,age = age,name?print(name,age) # yu 18
    • 解压赋值:将容器中的值分别取出来赋值给不同的变量名
      x,y,z,m,n=salaries=[111,222,333,444,555]?print(x,y,z,m,n) # 111 222 333 444 555

      # 解压字典默认解压出来的是字典的key?x,y,z=dic={‘a‘:1,‘b‘:2,‘c‘:3}?print(x,y,z) # a b c
    • 引入‘*’

      # 没有对应的都会被*存成一个列表(注意:任何类型的解压都会存成一个列表),交给后面的变量名。?# _: 通常指被废弃掉的变量,做一个占位符而已,约定俗成
      
      # *号再解压赋值中,只能出现一次?*_,x,y,z=salaries=[111,222,333,444,555]?print(x,y,z) # 333 444 555
  • 比较运算符>、>=、<、<=、==、!=

    print(1>2) # Falsepringt(1==1) # True
  • 逻辑运算符
  • 成员运算符
  • 身份运算符is

原文地址:https://www.cnblogs.com/yding/p/12422478.html

时间: 2024-10-01 06:12:39

python入门之垃圾回收机制、用户交互、算术运算符的相关文章

python04:垃圾回收、用户交互、运算符

一.垃圾回收机制详解: 1,引用计数    直接引用:直接将变量名跟值联系起来.    间接引用:容器类型存的是索引值和值的内存地址,其引用为间接引用    直接拨打电话和转分机号的区别 2,标记清除    由于存在循环引用的可能,就会导致无法被引用的值无法清除,因为引用计数不为0. 变量名存放于内存的:栈区    变量值存放于内存的:堆区 先扫描栈区的变量名,将与之间或直接引用的值标记为存活,其他堆区的值标记为失活.    再清除堆区就清除那些标记失活的(扫描栈区,标记堆区) 3,分带回收:分

垃圾回收机制详解、运算符和格式化输出

目录 垃圾回收机制详解.运算符和格式化输出 一.垃圾回收机制的原理 1 垃圾回收的原则 二.运算符 2.1 算术运算符 2.2 比较运算符 2.3 赋值运算符 2.4 逻辑运算符 2.5 成员运算符 2.6 身份运算符 三.格式化输出 3.1 % 占位符 3.2 str.format() 3.3 f"" 垃圾回收机制详解.运算符和格式化输出 一.垃圾回收机制的原理 当我们定义变量的时候,会申请一块内存空间用来存放变量值,然后利用赋值符号将变量名和变量值绑定在一起,接下来我们在使用变量值

04-3 python语法入门之垃圾回收机制

[TOC] 一 引入 ? 解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(简称垃圾)就应该将其占用的内存给回收掉,那什么样的变量值是没有用的呢? ? 由于变量名是访问到变量值的唯一方式,所以当一个变量值不再关联任何变量名时,我们就无法再访问到该变量值了,该变量值就是没有用的,就应该被当成一个垃圾回收.毫无疑问,内存空间的申请与回收是非常耗费精力的事情,而且存在很大的危险性,稍有不慎就有可能引发内存

python垃圾回收机制、与用户交互及运算符

一 垃圾回收机制详解(了解) 1.什么是垃圾回收机制 垃圾回收机制(简称GC)是Python解释器自带一种机制,专门用来回收不可用的变量值所占用的内存空间 2.为什么要用垃圾回收机制 程序运行过程中会申请大量的内存空间,而对于一些无用的内存空间如果不及时清理的话会导致内存使用殆尽(内存溢出),导致程序崩溃,因此管理内存是一件重要且繁杂的事情,而python解释器自带的垃圾回收机制把程序员从繁杂的内存管理中解放出来. 3.垃圾回收机制原理分析 Python的GC模块主要运用了“引用计数”(refe

Python中的垃圾回收机制 | Python

-- python垃圾回收机制 # Python的GC模块(GarbageCollection)-- 垃圾回收模块 # 主要运用了引用计数来跟踪回收垃圾: 1.引用计数: # 对象被创建或者复制,引用计数加1:--> __init__ # 对象引用被销毁,引用计数减1: --> __del__ # 对象就没有再被使用,释放其内存: 1.优点:实时性,任何内存一旦没有引用指向就会立刻被回收: 2.缺点:a.维护引用计数的额外操作,跟运行中内存分配,释放,引用赋值成正比,效率低: b.造成循环引用

编程语言类别;运行Python程序的方式;变量和常量;Python程序的垃圾回收机制;

---恢复内容开始--- 一.编程语言分类: 1.机器语言:直接用二进制的0和1和计算机(CPU)直接沟通交流,直接操作硬件. 优点:不需转换,计算机能直接读懂,执行速度快. 缺点:二进制代码复杂多样,理解甚难,开发效率低. ps:站在奴隶的角度说奴隶能够听得懂的话 0000 代表  加载 (LOAD) 0001代表 存储(STORE) 暂存器部分事例 0000  代表暂存器 A 0001  代表暂存器  B 存储器部分事例 000000000000  代表地址为 0的存储器 000000000

(编程语言+python+变量名+垃圾回收机制)*知识点

编程语言 从低级到高级的发展的过程 1.机器语言 计算机是基于电工作的.(基于高.低电平 1010010101011) 如果用机器语言表现一个字符的意思需要多段代码的行.但是计算机读取的快. 所以机器语言的 优点:执行速度够快 缺点:开发效率非常低 2.汇编语言 汇编语言的属性,汇编语言通过英文字符组成 优点:执行效率相较于机器语言略低 缺点:开发效率相较于机器语言略高 举个例子: ; hello.asm section .data ; 数据段声明 msg db "Hello, world!&q

Python中的垃圾回收机制

当我们声明一个对象的时候,例如str="abcdef",当我们不再使用str这个对象的时候,这个对象就是一个脏对象,垃圾对象,但是它还在占着内存,毕竟我们的电脑内存有限,所以应该有一个机制来回收它以及类似的对象.现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式.自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患. 对于一个字符串.列表.类甚至数值都是对象,且定位简单易用的语言,自然不会

Python 中的垃圾回收机制

GC作为现代编程语言的自动内存管理机制,专注于两件事:1. 找到内存中无用的垃圾资源 2. 清除这些垃圾并把内存让出来给其他对象使用.GC彻底把程序员从资源管理的重担中解放出来,让他们有更多的时间放在业务逻辑上.但这并不意味着码农就可以不去了解GC,毕竟多了解GC知识还是有利于我们写出更健壮的代码. 引用计数 Python语言默认采用的垃圾收集机制是『引用计数法 Reference Counting』,该算法最早George E. Collins在1960的时候首次提出,50年后的今天,该算法依