编程语言的分类

机器语言

计算机指认识0和1

0011 1010 0000 1100

计算机的设计初衷 --> 科学计算

  • 优点:执行效率高
  • 缺点:开发效率低

汇编语言

汇编语言类似于机器语言,但是汇编语言只是把一串二进制数写成一个英文单词。因此不需要去记住二进制数,而是去记住一个个英文单词。

汇编打印一句hello wold, 需要写十多行代码。

; hello.asm
section .data ; 数据段声明
msg db "Hello, world!", 0xA ; 要输出的字符串
len equ $ - msg ; 字串长度
section .text ; 代码段声明
global _start ; 指定入口函数
_start: ; 在屏幕上显示一个字符串
mov edx, len ; 参数三:字符串长度
mov ecx, msg ; 参数二:要显示的字符串
mov ebx, 1 ; 参数一:文件描述符(stdout)
mov eax, 4 ; 系统调用号(sys_write)
int 0x80 ; 调用内核功能
; 退出程序
mov ebx, 0 ; 参数一:退出代码
mov eax, 1 ; 系统调用号(sys_exit)
int 0x80 ; 调用内核功能
  • 优点(较于机器语言):开发效率高
  • 缺点(较于机器语言):执行效率低

高级语言

由于翻译器的不同,所以有编译型语言和解释型语言

编译型语言(谷歌翻译)

  1. 把所有代码一次性翻译好
// test.c
#include<stdio.h> /*引入头文件*/
int main(void) /*一个简单的C程序*/
{
int number; /*定义个名字叫做number的变量*/
number=2014; /*给number赋一个值*/
printf("Hello ! I am dotcpp.com\n"); /*调用printf()函数*/
printf("This year is %d\n",number);
return 0;
}

经过翻译器(汇编/机器语言), 假设是翻译成这样的:

// test.obj

	0110100101000;
010100101010011;
01000101010010101111;
1111111110000000101010;
101001010000000000000;
0110100101000;
010100101010011;
01000101010010101111;
1111111110000000101010;
101001010000000000000; 0110100101000;
010100101010011;
01000101010010101111;
1111111110000000101010;
101001010000000000000;
  • 优点(较于解释型):执行效率高
  • 缺点(较于解释型):开发效率低,翻译器翻译之后才能找到bug,改一次bug需要翻译一次,再改再翻译

解释型语言(同声传译)

# test.py
print('hello world') print('hello world') print('hello world')

翻译器(一般由编译型语言写的)

首先翻译第一行 (假设是这样翻译的)

0000001111001;

然后再翻译第二行

  • 优点(较于编译型):开发效率高
  • 缺点(较于编译型):执行效率低

网络瓶颈效应

互联网通信的时间远远大于程序执行的时间

如果你的程序需要联网,编译型的执行效率高的优点毫无用处,而用解释型语言能提高开发效率

如果程序不联网,如操作系统,就用编译型语言,最好用机器语言

执行python程序的两种方式

交互式 命令行式
优点 交互式下,不需要使用print,会自动打印,调试方便 程序能永久保存
缺点 关掉了程序就没了 调试非常麻烦

Jupyter的使用

jupyter的介绍

Jupyter Notebook的本质是一个Web应用程序,便于创建和共享文档。支持实时代码、数学方程、可视化和markdown。

安装

  • 安装:pip3 install jupyter
  • 启用:jupyter notebook

基本使用

  1. 修改默认目录
C:\Users\cwzdz> jupyter notebook --generate-config
Writing default config to: C:\Users\cwzdz\.jupyter\jupyter_notebook_config.py
# 找到配置文件,修改目录
c.NotebookApp.notebook_dir = 'D:\pycharm_project'
  1. 插件安装
pip3 install jupyter_contrib_nbextensions

再安装脚本文件

jupyter contrib nbextension install --user

  1. 配置

打开 Jupyter Notebook,可以看到主界面餐单栏多出了 Nbextensions 选项,点击可以展开拓展程序选项

可以自由摸索扩展程序用途

Jupyter快捷键

shift+enter 运行本单元,选中下一单元

ctrl+enter 运行本单元

esc+m 可以编辑markdown

esc+y 切换到代码

dd 删除一行

day02 整理的更多相关文章

  1. day02.2-常用Linux命令整理

    Linux命令语法格式:   命令    [选项]    [参数] 1). 命令:告诉Linux操作系统执行什么: 2). 选项:说明命令的运行方式.选项部分是以字符‘-’开始的: 3). 参数:说明 ...

  2. Java复习整理 Day02

    1 package demo01; 2 3 import java.util.Scanner; 4 5 public class ScannerDemo01 { 6 public static voi ...

  3. python开发学习-day02(元组、字符串、列表、字典深入)

    s12-20160109-day02 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  4. Java学习day02

    day02-课堂笔记 1.打开DOS命令窗口,执行java HelloWorld,执行原理? * java.exe命令会启动JVM * JVM启动之后会启动类加载器ClassLoader * Clas ...

  5. Django学习day02随堂笔记

    每日测验 """ 今日考题 1.谈谈你对web框架的认识,简述web框架请求流程 2.python三大主流web框架的区别 3.安装django需要注意的事项有哪些(最少 ...

  6. dotNET跨平台相关文档整理

    一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在M ...

  7. UWP学习目录整理

    UWP学习目录整理 0x00 可以忽略的废话 10月6号靠着半听半猜和文字直播的补充看完了微软的秋季新品发布会,信仰充值成功,对UWP的开发十分感兴趣,打算后面找时间学习一下.谁想到学习的欲望越来越强 ...

  8. SQL Server 常用内置函数(built-in)持续整理

    本文用于收集在运维中经常使用的系统内置函数,持续整理中 一,常用Metadata函数 1,查看数据库的ID和Name db_id(‘DB Name’),db_name('DB ID') 2,查看对象的 ...

  9. kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...

随机推荐

  1. zabbix入门

    第一章 监控知识基本概述 1.1 为什么要使用监控 1.对系统不间断实时监控2.实时反馈系统当前状态3.保证服务可靠性安全性4.保证业务持续稳定运行 1.2 如何进行监控,比如我们需要监控磁盘的使用率 ...

  2. js 时间戳转yyyy-MM-dd HH-mm-ss工具类

    转载自:https://blog.csdn.net/shan1774965666/article/details/55049819 在web开发中,我们经常需要用js将时间戳转yyyy-MM-dd H ...

  3. 第50 课C++对象模型分析——成员函数(上)

    类中的成员函数位于代码段中调用成员函数时对象地址作为参数隐式传递成员函数通过对象地址访问成员变量C++语法规则隐藏了对象地址的传递过程 #include<iostream> #includ ...

  4. Jmeter之BeanShell

    在Jmeter中各种分类组件中都有相应的BeanShell组件,这里简单的说明一下Beanshell的使用. 一.概念 BeanShell是一种符合Java语法的脚本语言,也有自己的一些特定语法 二. ...

  5. python 绘制词云图

    1. 先下载并安装nltk包,准备一张简单的图片存入代码所在文件目录,搜集英文停用词表 import nltk nltk.download() 2. 绘制词云图 import re import nu ...

  6. 【转】Redis常见面试题

    介绍:Redis 是一个开源的使用 ANSI C 语言编写.遵守 BSD 协议.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的 API的非关系型数据库. 传统数据 ...

  7. lua 15 协程-协同程序

    转自:http://www.runoob.com/lua/lua-coroutine.html 什么是协同(coroutine)? Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈 ...

  8. jQuery中的CSS(四)

    1. css(name|pro|[,val|fn]), 访问匹配元素的样式属性 jQuery 1.8中,当你使用CSS属性在css()或animate()中,我们将根据浏览器自动加上前缀(在适当的时候 ...

  9. 【Eureka篇三】EurekaServer服务注册中心(1)

    注:在前面[Rest微服务案例(二)]的基础上进行操作. 1. 新建Maven Module,子模块名称为microservicecloud-eureka-7001,packaging为jar模式 & ...

  10. Overload 重载