day03

day03作业

简述执行Python程序的两种方式以及他们的优缺点:

  1. 交互式

    • 优点:运行一句,执行一句
    • 缺点:关闭即消失
  2. 命令式

    • 优点:一直保存
    • 缺点:全部写完才能调试bug

简述Python垃圾回收机制:

  • 每定义一个变量py都会在内存开辟一个空间,这个空间的名字就是变量名,比如X=10,这就是在一个名为X的房间,它里面的值就是10,但是当我们重新定义一个X=11时py就会解除x和10的绑定而重新与11绑定,也就是x=11,这个时候存放10的那个空间就没了名字也就成了垃圾,python会自动释放存放10的这个空间所占用的内存。

对于下述代码:

x = 10
y = 10
z = 10
del y

10的引用计数为多少?

  • 2
  • 删除了y之后10的引用计数是x和z
x = 257
y = x
del x
z = 257

x对应的变量值257的引用计数为多少?

  • 1
  • 因为y=x所以删除了x以后y等于257,但是z是另外定义的一个虽然同是等于257但是他们开辟了不同的空间,所以x对应的257引用计数为1.

简述Python小整数池概念:

  • 为了避免因创造相同的值而重复申请内存空间所带来的效率问题py在启动时就会创建一个空间也就是小整数池,就是在一定范围内[-5,256]的小整数对象是被重复使用的不会被当做垃圾回收。

对于x = 10,请用Python代码分别打印变量值、变量值内存地址和变量数据类型:

x = 10
print(x)
print(id(x))
print(type(x))

对于下述代码:

x = 257
y = x
z = 257

请判断x、y、z的变量值是否相同?x、y、z的所在的内存地址是否相同?请用python代码阐述为什么?

x = 257
y = x
z = 257
print(x,y,z)
#输出 257 257 257
print(id(x),id(y),id(z))
#输出34508624 34508624 34508624
  • 这是我用pycharm写的,pycharm有个特点就是为了节省内存,在10分钟内输入的相同数值他不会另外开辟空间。所以实际上变量值是相同,但是内存地址x和y相同z和他们不同

通过预习写一个猜年龄游戏,需求:给定一个标准年龄,用户通过输入年龄判断年龄是否等于标准年龄,如果等于——打印猜对了;如果小于——打印猜小了;如果大于——打印猜大了

age = 18  #定义一个数值(标准答案)
count = 0  #次数0次时可以游戏
#当游戏进行次数小于3次时显示"请输入你的年龄>>>"
while count < 3:
    inp_age = input("请输入你的年龄>>>")
    # 判断输入的是否是数字,如果不是,则显示"年龄怎么能不输入数字呢"
    if not inp_age.isdigit():
        print("年龄怎么能不输入数字呢")
        continue
#如果输入的时数字则开始判断与标准答案的大小。
    inp_age_int = int(inp_age)
    if inp_age_int == age:
        print("对的,就是这个")

        break    #当猜对之后退出当前循环
    elif inp_age_int < age:
        print("猜小了")
    else:
        print("猜大了")
        #每次猜一次数字则增加一次游戏次数如果次数小于三则继续游戏
    count += 1
    if count < 3:
        continue
        #当游戏次数大于3时则出现"是否继续猜,继续输入“y”,否则按任意键退出。"
        # 如果输入y则游戏进行次数清0,继续进行游戏。
    again_choice = input("是否继续猜,继续输入“y”,否则按任意键退出。")
    if again_choice == "y":
        count = 0

今日小结:

今天开始接触实际打代码,感觉有很多懵懵懂懂的,不是很明白,虽然每句话都知道代表的是什么意思,但是如果如果没人教让我自己打肯定打不出来,很多地方也不知道为什么这么打,接下来好好学!

posted @ 2019-07-29 18:39  xuchong  阅读(108)  评论(0编辑  收藏  举报