热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

内存管理机制,运算符

今日内容:1、内存管理机制垃圾回收机制GC引用计数分代回收标记清除小整数池2、与用户交互接收用户输入格式化输出3、运算符4、流程控制之if判断**一垃圾回收机制GC**#1.1引用

今日内容:

1、内存管理机制

垃圾回收机制GC

引用计数

分代回收

标记/清除

小整数池

2、与用户交互

接收用户输入

格式化输出

3、运算符

4、流程控制之if判断

**一 垃圾回收机制GC**
# 1.1 引用计数
# 引用计数增加
x = 18 # 值18的引用计数为1
y = x # 值18的引用计数为2
l = [111, x] # 值18的引用计数为3
# print(id(x))
# print(id(y))
# print(id(l[1]))
# 引用计数减少
# del x # 值18的引用计数为2
# y = 100 # 值18的引用计数为1
# del l[1] # 值18的应用计数为0
# 1.2 分代回收:为了解决引用计数的效率问题
# 问题:个别垃圾有可能得不到及时的清理
# 1.3 标记/清除:为了解决循环引用带来的内存泄漏问题
# 核心:一个变量值没有任意一条可以从栈区出发到自己的引用,就会被标记下来,方便后续清除
# lll = [66,77,[88,99]]
# l1 = [111]
# l2 = [222]
# l1.append(l2)
# l2.append(l1)
# print(l1) # l1 = [111的内存地址,l2的内存地址]
# print(l2) # l2 = [222的内存地址,l1的内存地址]
# print(l1[1][1])
# del l1
# print(l2[1][0])
# del l2
**二 小整数池**
x = "abc"
y = "abc"
print(id(x))
print(id(y))

**1、接收用户输入**
python3中的input会把用户输入的所有内容都存成str类型
age = input("请输入您的年龄: ") # "内容"
print(age,type(age))
age=int(age)
print(age > 10) # "18" > 10
补充:int可以把纯数字组成的字符串转换整型
int("31") # ok
res = int(" 31 ") # ok
res = int("3 1") # no
print(res,type(res))
python2(***)
raw_input()与python3的input一模一样
input()要求用户必须输入一个明确的数据类型,输入什么类型就存成什么类型
**2、输出**
print("hello1",end='*')
print("hello2",end='*')
print("hello3",end='*')
msg = "my name is %s my age is %s" % ("egon", "18")
msg = "my name is %s my age is %d" % ("egon", 18)
msg = "my name is %s my age is %s" % ("egon", 18)
msg = "my name is %s my age is %s" % ("egon", [1,2,3])
print(msg)

**2.1 算术运算符**
x = 10
y = 20
print(x + y)
print(10 + 20)
print(10 // 3)
print(10 / 3)
print(10 % 3)
print(10 ** 2)
print(10 + 3.1)
了解:+与*
print("abc"+"def")
print([1,2,3]+[3,4,5])
print("abc"*3)
print([1,2,3]*3)
补充:python是一门解释型、强类型、动态语言
补充:go是一门编译型、强类型、静态语言
"18" + 10
x = 10
**2.2 比较运算符**
判断是否相等,没有类型限制
print("abc" == 10) # 判断的是值及其类型是否相等
print("abc" != 10) # 判断的是值及其类型是否相等
> >= <<=:主要用于数字类型
print(10 > 3.1)
了解:> >= <<=也可以给其他类型用,但仅限于同类型之间
x = "abcdefg"
y = "abz"
print(x > y)
x = [111, 'abcdefg', 666]
y = [111,'z']
print(x > y)
**2.3 赋值运算符**
2.3.1 增量赋值
age = 18
age += 1 # age = age + 1
age -= 1 # age = age - 1
print(age)
**2.3.2 链式赋值**
x = y = z = 100
2.3.3 交叉赋值
x = 100
y = 200
temp = x
x = y
y = temp
del temp
x,y=y,x
print(x) # 200
print(y) # 100
2.3.4 解压赋值
salaries = [11, 22, 33, 44, 55]
mon1 = salaries[0]
mon2 = salaries[1]
mon3 = salaries[2]
mon4 = salaries[3]
mon5 = salaries[4]
mon1, mon2, mon3, mon4, mon5 = salaries
mon1, mon2, mon3, mon4, mon5 ,mon6= salaries # 错误
mon1, mon2, mon3, mon4 = salaries # 错误
print(mon1, mon2, mon3, mon4, mon5)
mon1,mon2,*_ ,last = salaries
print(mon1)
print(mon2)
print(_)
_,*x,_ = salaries
print(x)
了解:
x, y, z = {'k1': 111, 'k2': 222, 'k3': 3333}
x, y, z = "abc"
print(x,y,z)
**2.4 逻辑运算符**
逻辑运算符是用来运算条件的,那什么是条件???
只要结果为布尔值的都可以当做条件
**总结:逻辑运算符,算的是显式的布尔值或者隐式的布尔值**
2.4.1 not
print(not 10 > 3)
print(not False)
print(not 123)
2.4.2 and: 链接多个条件,多个条件必须同时成立,最终结果才为True
print(10 > 3 and True and 'xx' == 'xx')
print(10 > 3 and False and 'xx' == 'xx')
print(10 > 3 and None and 'xx' == 'xx')
print(10 > 3 and True and 'xx' == 'xx' and 111)
2.4.3 or: 链接多个条件,多个条件但凡有一个成立,最终结果就为True
print(10 > 3 or False or 'xx' == 'xx')
print(0 or None or "" or 1 or True or 10 > 3)
强调:优先级not>and>or
print(3 > 4 and 4 > 3 or 1 == 3 and not 'x' == 'x' or 3 > 3)
(3 > 4 and 4 > 3) or (1 == 3 and not 'x' == 'x') or 3 > 3
**2.5 成员运算符**
print("abc" in "xxxabcxxxxx")
print(111 in [222,333,1111])
print('k1' in {'k1':111,'k2':222}) # 字典的成员运算判断的是key
print('k3' not in {'k1': 111, 'k2': 222}) # 推荐
print(not 'k3' in {'k1': 111, 'k2': 222}) # 不推荐
**2.6 身份运算符**:is判断的是id是否一样
x = 100
y = x
print(x is y)
print(x == y)
**总结:==成立is不一定成立,但是is成立==一定成立**
l1 = [111]
res=l1.append(222)
print(res == None) # 可以,但是不够好
print(res is None) # 推荐


推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了使用Python根据字典中的值进行排序的方法,并给出了实验结果。通过将字典转化为记录项,可以按照字典中的值进行排序操作。实验结果显示,按照值进行排序后的记录项为[('b', 2), ('a', 3)]。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼错误72error:ErroropeningoutputfileC:Users林鑫辰AppDataLocalTemptmpxft_0000 ... [详细]
  • PostgresX2 MPP部署试验
    2019独角兽企业重金招聘Python工程师标准MPP结构:129GTM节点,130coordinator、gtm_proxy、datanode& ... [详细]
author-avatar
傲慢的寒风呼啸_539
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有