day02 整理
编程语言的分类
机器语言
计算机指认识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 ; 调用内核功能
- 优点(较于机器语言):开发效率高
- 缺点(较于机器语言):执行效率低
高级语言
由于翻译器的不同,所以有编译型语言和解释型语言
编译型语言(谷歌翻译)
- 把所有代码一次性翻译好
// 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
基本使用
- 修改默认目录
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'
- 插件安装
pip3 install jupyter_contrib_nbextensions
再安装脚本文件
jupyter contrib nbextension install --user
- 配置
打开 Jupyter Notebook,可以看到主界面餐单栏多出了 Nbextensions 选项,点击可以展开拓展程序选项
可以自由摸索扩展程序用途
Jupyter快捷键
shift+enter 运行本单元,选中下一单元
ctrl+enter 运行本单元
esc+m 可以编辑markdown
esc+y 切换到代码
dd 删除一行
day02 整理的更多相关文章
- day02.2-常用Linux命令整理
Linux命令语法格式: 命令 [选项] [参数] 1). 命令:告诉Linux操作系统执行什么: 2). 选项:说明命令的运行方式.选项部分是以字符‘-’开始的: 3). 参数:说明 ...
- Java复习整理 Day02
1 package demo01; 2 3 import java.util.Scanner; 4 5 public class ScannerDemo01 { 6 public static voi ...
- python开发学习-day02(元组、字符串、列表、字典深入)
s12-20160109-day02 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- Java学习day02
day02-课堂笔记 1.打开DOS命令窗口,执行java HelloWorld,执行原理? * java.exe命令会启动JVM * JVM启动之后会启动类加载器ClassLoader * Clas ...
- Django学习day02随堂笔记
每日测验 """ 今日考题 1.谈谈你对web框架的认识,简述web框架请求流程 2.python三大主流web框架的区别 3.安装django需要注意的事项有哪些(最少 ...
- dotNET跨平台相关文档整理
一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在M ...
- UWP学习目录整理
UWP学习目录整理 0x00 可以忽略的废话 10月6号靠着半听半猜和文字直播的补充看完了微软的秋季新品发布会,信仰充值成功,对UWP的开发十分感兴趣,打算后面找时间学习一下.谁想到学习的欲望越来越强 ...
- SQL Server 常用内置函数(built-in)持续整理
本文用于收集在运维中经常使用的系统内置函数,持续整理中 一,常用Metadata函数 1,查看数据库的ID和Name db_id(‘DB Name’),db_name('DB ID') 2,查看对象的 ...
- kafka学习笔记:知识点整理
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...
随机推荐
- 图Lasso求逆协方差矩阵(Graphical Lasso for inverse covariance matrix)
图Lasso求逆协方差矩阵(Graphical Lasso for inverse covariance matrix) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/ka ...
- Bn Bp Binder native层关系
Servicemanager 源码在/frameworks/base/cmds/servicemanager/service_manager.c 编译成 systemmanager 可执行文件 sys ...
- 6.1 Spark SQL
一.从shark到Spark SQL Hive能够把SQL程序转换成map-reduce程序 可以把Hadoop中的Hive看作是一个接口,主要起到了转换的功能,并没有实际存储数据. Shark即 ...
- 面向对象程序设计(JAVA) 第8周学习指导及要求
2019面向对象程序设计(Java)第8周学习指导及要求 (2019.10.18-2019.10.21) 学习目标 掌握接口定义方法: 掌握实现接口类的定义要求: 掌握实现了接口类的使用要求: 理解 ...
- tensorflow的MNIST教程
(ps:根据自己的理解,提炼了一下官方文档的内容,错误的地方希望大佬们多多指正.....) 0x01:数据集的获取和表示 数据集的获取,可以通过代码自动下载.这里的数据就是各种手写数字图片和图片对应的 ...
- Pwn-pwn-200
题目地址 ttp://www.whalectf.xin/files/47a658e388a0c505fc07b6ee48a4a2e2/binary_200 32位,开启了NX和Canary保护 存在字 ...
- 简述ECMAScript6新增特性
1.变量 var 可以重复声明.只有函数级的作用域.存在变量提升 let 不能重复声明.有块级作用域.没有变量提升.变量 const 不能重复声明.具有块级作用域.常量 2.箭头函数 a.为了方便而存 ...
- GET POST 区分
get传送的数据量较小,不能大于2KB.post传送的数据量较大,一般被默认为不受限制.但理论上,IIS4中最大量为80KB,IIS5中为100KB. get安全性非常低,get设计成传输数据,一般都 ...
- 剑指Offer-7.斐波那契数列(C++/Java)
题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 分析: 斐波那契数列是0,1,1,2,3,5,8,13...也就是当前 ...
- Node.js 获取本机Mac地址
首先我们要先加载一个包用于获取mac地址 npm install getmac 加载完毕会在node_modules文件夹下发现一个getmac文件夹,我们把对应的路径加载到程序中 源码如下: var ...