zoukankan      html  css  js  c++  java
  • day1`4整理

    day 1
    计算机的基础知识
    1 五部分
    控制器 运算器 储存器 输入输出设备
    cpu [控制器(?) 运算器(?)]
    储存器 [寄存器(分布在cpu上 速度最快,容量最小)
    内存(较快),硬盘(慢)]
    rom 只读存储器
    ram 可读写存储器
    平台
    硬件加操作系统
    跨平台
    跨平台性能的好坏是衡量一个软件好的重要标准
    操作系统
    是协调,管理,操作 计算机硬件和软件资源的程序,讲硬件的命令指令封装成接口公用户和软件应用使用>

    cpu X86型号 64 位数 cpu一次读取指令的最大位数

    内存是主内存 :我们所有的程序和运行程序过程中产生的值都放在内存中

    内核态用户态 :当计算机调用硬件指令时,切换为内核态

    IO延迟 = 平均寻道 + 平均延迟

    开机过程
    首先启动bios(存储在主板的rom中,)
    BIOS 调用 coms 存储过程量和参数
    选择启动项
    读取启动项第一个扇区
    启动操作系统




    day 2
    机器语言
    汇编语言
    高级语言: 编译型 c
    解释型语言 python
    编译型 运行快 开发慢 跨平台差
    解释型 运行慢 开发快 跨平台强

    python的运行
    Python解释器启动(从硬盘 读入内存)
    .py文件读入内存
    将.py文件用python解释器按照python语法运行
    环境变量
    指在操作系统中用来指定操作系统运行环境的一系列参数
    作用当运行程序时如果在本目录中找不到会从环境变量中找


    day 3:

    变量
    变化的量
    记录事物的状态 程序的运行本质上就是 程序的运行
    name = 'Alex'

    变量的三部分:
    变量名 指向等号右方的地址
    赋值 将变量值和变量名绑定
    变量值 内存地址中存储的内容
    变量的三种特性
    id() id号 与内存地址一一相对应,但不等于内存地址
    type() 变量的种类
    value 值
    变量的命名规则和风格
    1数字字母下划线组成且数字不在开头
    2不能是关键字
    3要言之有意
    ps: 不能太长,不能用中文
    1 尽量用小写字母下划线组成
    2 或者驼峰体(不建议)
    常量:约定俗成 纯大写变量名为常量(不赞成更改)

    is id() , == value
    is 比较的是id号
    == 比较的是值
    id相等值一定相等,反之则不一定.
    小整数池
    python解释器为了

    变量类型
    数字(10 10.1)
    (为什么表示数字类型的状态)
    整数 int n = 10
    浮点数 float m = 10
    整数类型可以和字符串类型直接相加
    type(n) type(m)
    字符串 ('Alex')
    str (为了表示可描述性状态的变量)
    a = '秋天的落叶'
    其他:
    可相加 可以跟数字相乘(不常用)
    字符串的嵌套


    列表([])
    list (存储多个状态且可以通过索引读取出来)
    l = ['name','age','hobby']
    其他:列表嵌套 列表的循环引用(采取 标记清除发)

    字典({key:value,...})(key一般是字符串''value随便)
    dict (类似列表 容器类型,不过不是通过索引取值而是通过key取值)
    dic = {'name':'Alex','hobby':['安静','心跳的声音']}
    其他 嵌套
    bool(True,False)
    day4 (第四天的不小心删掉了用笔记代替)
    作业
    # 1
    print('{0:-^36}'.format('in to Egon'))
    a = '''Name : {}
    Age : {}
    Sex : {}
    Job : {}
     '''
    print(a.format('Egon',22,'male','teachor'))
    print('{0:-^36}'.format('end'))
    ''''不熟练待会练习'''
    # 2
    users = {'enon':'永远18岁','lee':'睡你妹起床学习'}
    user_name = input('输入用户名>>>')
    if user_name.lower() in users.keys():
        password = input('输入密码')
        if password == users[user_name.lower()]:
            print('登录成功')
        else:
            print('密码错误,请重试')
    else:
        print('用户名不存在')
    # 3
    egon_age = 18
    temp_age = int(input('猜一下egon的年龄'))
    if temp_age > egon_age:
        print('我那么老么,想清楚在说话 啊!')
    elif temp_age < egon_age:
        print('哈哈,我看起来这么年轻啊,小嘴抹了蜜')
    else:
        print('聪明,帅气如我永远18')
    # 4
    print(10000//30)
    print(10000%30)
    # 5
    egon = 18
    egon += 3
    print(egon)
    # 6
    x = y = z = 10
    # 7
    dsb = 'egon'
    superman = 'alex'
    dsb , superman = superman, dsb
    # 8
    name_1 , naem_2,name_3,name_4,name_5,name_6 = ['alex_sb','wusir_sb','oldboy_sb','egon_nb','lxx_nb','tank_nb']
    print(name_1 , naem_2,name_3,name_4,name_5,name_6)
    View Code

    垃圾回收机制

    # 垃圾回收机制
    # 是python自带的一种自动回收无用内存空间的机制
    # 节省内存空间提高运行效率
    # 1 引用计数 当变量值被变量名直接连接或者间接连接时,则变量计数加一,当变量计数为零时,则解释器回收内存
    # 引用计数分为:直接引用和间接引用
    # 直接引用 : x = 10
    # 间接引用 : l = [1 ,2,x]
    '''
    ps: l1 = [1 , 2 , x] 与 l2 = [1,2,10]  一样
    x = 10 x 中存储的是x的10的内存地址
    l1,l2中存取的是列表 [1,2,10]内存地址
    x = 10
    l = [x]
    x = 123
    print(l) == print([10])
    当列表中存取变量时只存取变量相对应的内存地址而跟变量无关,变量变列表中的值不变.
    '''
    # 但是引用计数存在漏洞 为了修补引用计数的漏洞 产生了
    # 2 标记清楚算法
    # 容器数据类型的循环引用造成漏洞   例如 l1 = ['alex','lee',l2} l2 = ['alex','lee',l1}  当解除l1 l2 与其对应变量值的绑定关系后
    # 其变量值相互关联引用计数算法无法不能回收,我们也无法调用,浪费内存空间.所以有了标记清除法
    # 栈区 : 存放变量名称
    # 堆区 : 存放变量值
    #   开始时扫描 从栈区每个变量名出发往后标记.堆区中没有标记的值就是无法被调取的.清除.
    # 分代回收(降低引用计数的扫描频率,提高回收效率)
    # 给变量设置权重值
    # 降低.引用计数扫描中一直存在连接的变量扫描频率.
    
    input('')
    View Code

    用户交换 与格式化输出(补遗)

    # print()
    # input('')
    # python 3 中    input()输出的都是字符串类型
    # name = input('请输入你的名字')
    # print(name)
    # print(name,type(name))
    # age = input('请输入你的年龄')
    # print(age,type(age))
    # print(int(age))
    # # print(int('abc'))
    # print(int(5022.1644))
    # int 转化数字只能转化纯数字类型的字符串
    #
    # python 2 中    raw_input 跟python3 中的input相同
    #                 但是python2 中的
    # input(): 要求用户必须输入一个明确的数据类型,输入的是什么类型,就存成什么类型
    
    # 字符串类型格式化
    # 较老
    # name = input('请输入你的名字')
    # author = input('请输入这首歌的作者')
    # print('与鲜活的枝丫%s,你想法你我就'%(name))
    # print('中一万多莲花%s,我怎么能波澜不进,去附和%s' % (name,author))
    # print('是不是会担心会变成一只野兽%(name)s为心跳%(author)s的节奏'% {'author' : author,'name' : name})
    
    
    #forma (建议使用)
    # print('想要练就就是武功,无论{}和{}'.format('春夏','秋冬'))
    # print('作词{1}最想看到是你的{0}'.format('微笑','胆小'))
    # print('世界突然变得好{name},只剩{author}的声音'.format(name='安静',author = '心跳'))
    # 了解
    """
    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
    
    """
    print('{0:*<10}'.format('开始执行'))
    
    # f(不建议使用)
    x = input(">>>")
    y = input('>>>')
    print(f'只怕你把{x}当习惯{y}')
    View Code

    运算符

    # 运算符
    # 算数运算符
    #   +,-,*,/,//,**,%
    # 比较运算符
    # >,>=,<,<=,==,!=
    # 赋值运算符
    #  = 变量的赋值运算
    '''
    增量赋值
    例如
    a += 1
    b -= 1
    c *= c
    d **= 2
    e %= 2
    f //= 2
    g /= 2
    '''
    # 链式赋值
    x = 10
    y = x
    z = y
    '+++++++++++++++++++++++++'
    x = y = z = 10
    print(id(x),id(y),id(z))
    # 交叉赋值
    x = 10
    y = 20
    temp = x
    x = y
    y = temp
    print(x,y)
    '++++++++++++++++++++'
    x = 10
    y = 20
    x,y = y,x
    print(x,y)
    # 解压赋值(*****)
    # 重点
    salaries = [111,222,333,444,555,666,777]
    mon_0 = salaries[0]
    mon_1 = salaries[1]
    mon_2 = salaries[2]
    mon_3 = salaries[3]
    mon_4 = salaries[4]
    mon_5 = salaries[5]
    mon_6 = salaries[6]
    print(mon_0,mon_1,mon_2,mon_3,mon_4,mon_5,mon_6)
    '++++++++++++++++++++++++++++++++++++++++++++++++++++'
    mon_6,mon_5,mon_4,mon_3,mon_2,mon_1,mon_0 = salaries
    print(mon_0,mon_1,mon_2,mon_3,mon_4,mon_5,mon_6)
    '++++++++++++++++++++++++++++++++++++++++++++++++'
    # 只取开头
    mon_0,mon_1,*_= salaries
    print(mon_0,mon_1)
    # 只取结尾
    *_,mon_5,mon_6 =salaries
    print(mon_5,mon_6)
    '''众所周知 *代表所有的意思
    *讲没有对应关系的值存为列表然后赋值给紧跟其后的变量名
    '''
    View Code
  • 相关阅读:
    java中传值与传引用
    microsofr visual studio编写c语言
    openfile学习笔记
    在 Windows 和 Linux(Gnome) 环境下 从命令界面打开网页的方式
    使用vsphere client 克隆虚拟机
    route命令
    linux rpm问题:怎样查看rpm安装包的安装路径
    【leetcode】415. 字符串相加
    【leetcode】面试题 17.01. 不用加号的加法
    【leetcode】989. 数组形式的整数加法
  • 原文地址:https://www.cnblogs.com/lee1225/p/12424578.html
Copyright © 2011-2022 走看看