码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-03-05 20:47:36      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:年龄   nta   结果   erro   扫描   宽度   了解   lock   text   

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

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

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

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

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

    x = 10

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

    x = 11
    y = [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 11
    my 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.124
    print(‘{0:b}‘.format(123))  # 转成二进制,结果为:1111011
    print(‘{0:o}‘.format(9))  # 转成八进制,结果为:11
    print(‘{0:x}‘.format(15))  # 转成十六进制,结果为:f
    print(‘{0:,}‘.format(99812939393931))  # 千分位格式化,结果为:99,812,939,393,931

    2.3 f:python3.5以后才推出

    x = input(‘your name: ‘) # yu
    y = input(‘your age: ‘) # 18
    res = f‘我的名字是{x} 我的年龄是{y}‘
    print(res) # 我的名字是yu 我的年龄是18
  • 技术图片
  • 技术图片

3、基本运算符
  • 算数运算符:+、-、*、/、//、%、**

    print(1+1.2) # 2.2
  • 赋值运算符

    • 变量的赋值:=

      x = 1
      print(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) # False
    pringt(1==1) # True
  • 逻辑运算符

     

  • 成员运算符

     

  • 身份运算符is

     

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

标签:年龄   nta   结果   erro   扫描   宽度   了解   lock   text   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!