• 16 Mar 18 操作系统(补充) + python入门及基础


    操作系统(补充)

    1. 操作系统的用户可以为应用程序,亦可为用户

    2. 操作系统包括: 接口程序(将硬件的功能封装成简单的接口,服务应用软件/用户)和 内核 (核心的功能,用于控制硬件)

    3. 操作系统的定义:一个协调,管理,控制计算机硬件及软件的控制程序

    4. 内核态 与 用户态: CPU的两种工作状态(了解)

    内核态: CPU执行操作系统内核所处的状态,处于内核态能够控制硬件

    用户态: CPU执行用户程序/应用程序时所处的状态, 处于用户态不能控制硬件

    5. ** 应用程序的启动

       前提: 先启动操作系统

    a. 向操作系统提交程序启动文件的路径

    b. 操作系统根据文件的路径把文件的数据读入内存

    c. 操作系统调用CPU执行内存中刚刚读入的程序代码

    python入门

    1. 编程语言分类

    机器语言: 用二进制指令编程,本质是直接操作硬件;执行效率高, 开发效率低,学习难度高

    汇编语言: 用英文标识符表示一串二进制,本质亦为直接操作硬件, 主要用于操作系统的开发

    高级语言:根据翻译方式不同分为编译型和解释型-用人类的字符去编写程序, 主要用于开发应用程序

    编译型( C语言):编译一次,拿到结果可以重复执行, 无需重新翻译;类似谷歌翻译;C语言的编译器为gcc

    翻译: 程序 –》 gcc –》 机器语言; 执行: 机器语言-》CPU

    优点: 执行效率高 (第二次以后)

    缺点: 调试程序麻烦,跨平台性差

    解释型(python, java),边翻译边执行, 需要解释器;类似同声传译

    程序-》C解释器 等-》C语言的功能(一次性转换为中间格式)-》机器语言-》CPU执行

    优点: 调试程序方便,开发效率高, 跨平台性高(选好解释器)

    缺点:执行效率低

    python 的解释器有多个种类,cpython指的是用C语言开发的python 的解释器

    学习难度: 机器语言》汇编语言》编译型高级语言》解释型高级语言

    执行效率:机器语言》汇编语言》编译型高级语言》解释型高级语言

    开发效率:机器语言《汇编语言《编译型高级语言《解释型高级语言

    相比于执行速度,开发速度为瓶颈

    2. python解释器安装,多版本共存

    我的电脑-》属性-》高级系统设置-》环境变量-》修改系统PATH

    win10:直接添加

    win7: C:Usersoldboy1;C:Usersoldboy2;C:Usersoldboy3;D:python36

    mac:

              /etc/profile

              PATH=python的安装路径:$PATH

              export PATH

              source /etc/profile

    3. ** python的两种运行方式

    交互式:调试方便,无法永久保存代码

    脚本文件方式:永久保存代码; 启动python 解释器–》将路径D: est.txt所指代码读入内存-》解释,执行

    4. 变量

    什么是变量: 变量时一种可以反映出状态变化的机制

    ** 为什么需要变量:程序的执行本质就是一系列状态的变化。 需要一种机制能够反映/保存下程序执行时状态以及状态的变化

    如何定义变量: 变量名= 变量值; 内存中分配一个空间给变量值, 变量名(门牌)指向变量值,是对值的引用

    变量值的引用计数:指向同一id的变量值的引用次数

    增加引用计数: X=1,Y=X =》1的引用次数变为2

    减少引用计数: X= ‘egon’,  del Y =》0 的引用次数变为0

                   or    X=0,X=1 =》 0 的引用次数变为0

    python自带自动垃圾回收机制(了解):在程序运行中,python自动回收引用次数变为0的变量值

    del y: 删除y与原变量值的绑定关系

    变量的命名规范:

    a. 变量名只能为字母,数字或下划线的任意组合

    b. 变量名的第一个字符不能为数字 (开头为下划线的变量名比较特殊,一般推荐用字母开头)

    c. 变量名不能为关键字

    变量名的定义方式 (描述清楚变量值):

    驼峰体: AgeOfOldboy

    下划线: age_of_oldboy (推荐使用)

    ** 变量值的三个特征: id, type, value

    id不是内存地址, 仅为在内存中的位置; id相同,type和value必相同; value 相同, type必相同但value可能不同

    ** is: 身份运算,比较的是id; ==:比较的是值 (身份运算)

    e.g.: s1 =“xxxxxxx”, s2=“xxxxxxx”, s1 == s2(T), s1 is s2 (F)

    5. 常量:约定俗成全部大写表示常量

    6. 用户与程序交互

    input(): 接收用户的输入,并把输入内容转成字符串

    7. 注释:增强可读性

    单行注释: #

    多行注释:““”     “””

    8. 文件头:

    #!/usr/bin/env python

    # coding: utf-8

    9. 基本数据类型

    整型(数字)int : level=10 #level=int(10)——()里必须为整数

    浮点型(数字)float

    字符串 str : 单双三引号没有区别, 但需考虑单双引号的配合; 包含在引号内的一串字符(包括空格)

    列表 list:中括号中,用逗号分隔的多个值,值可以是任意类型 索引a[1][0]

    字典 dict:  花括号中,用逗号分隔的多个值,每组元素都为key:value的形式,其中value可以是任意值, key为不可变类型(规定)。字典比列表多了一个映射关系 a[key]

    布尔 bool:True False, 表判断

    字符串的拼接: + (效率低,不推荐,且只能字符串之间相加) / * (数字)

    列表 vs 字典 : 字典的存取更快, 但浪费空间

    ** 所有数据类型都自带布尔值, None, 0, 空(单纯的空字符串,空列表,空字典)为 False, 其余为True

    control +?:批量(解除)注释

    shift + table : 整体左,右移

    精简 《 可读性

    10. ** 可变类型和不可变类型

    可变(id不变时,值可变): 字典,列表

    不可变:(值变, id必变,即创建了新的内存空间):数字,字符串

    11. 格式化输出

    %s 通用, 字符串, 数字

    %d 用于数字

    name = input (‘your name: ‘)

    age = input (‘your age: ‘)

    print (‘My name is %s, my age is %s’ % (name., age))

    print (‘My name is %s, my age is %s’ % (‘ab’, 18))

    12. 基本运算符

    / 真正除

    % 取模/余

    ** 取幂

    // 返回商的整数部分

    用!=, 不用 <>

    age = age+1 《=》 age+=1 : 增量赋值

    逻辑与and, 或or, 非not; T or F and F, True

    13. 流程控制之if else

    if 条件:

        缩进代码块

    elif 条件:

        缩进代码块

    else:

        缩进代码块

    14. 流量控制之while循环

    while 条件:

        循环体

    #如果条件为真,循环体执行,再次循环,判断条件

    #如果条件为假, 循环体不执行, 循环终止

    避免死循环

    import time

    num = 0

    while True:

        print(‘count’, num)

        time.sleep (1) #模拟I/O,避免卡

        num+=1

    tag = True

    while tag:

        ……..

        while tag:

                …….

                While tag:

                    Tag = False

    break: 退出本层循环

    continue:退出本次循环 (之后的代码不执行), 进入下一次循环

    while + else : 当while循环正常执行完, 中间没有被break中止的话,就会执行else后面的语句; 如果执行过程中被break, 就不会执行else的语句

  • 相关阅读:
    祝贺我的博客訪问量过万(訪问量:10260次)
    【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
    Hibernate之HQL检索(查询)方式
    使用Nexus搭建Maven仓库
    poj2151之概率DP
    《从零開始学Swift》学习笔记(Day 71)——Swift与C/C++混合编程之数据类型映射
    D3D 点列练习
    poj 1733 Parity game
    命令行參数
    高速乘法
  • 原文地址:https://www.cnblogs.com/zhangyaqian/p/py20180316.html
Copyright © 2020-2023  润新知