正如前一篇随笔所提到的,python属于解释型语言
python语言有两个特点:
1.胶水语言(历史遗留问题,原来Perl语言作为Unix内置标准件,获得极大追捧,作为竞争者的python一开始是作为小三,与shell语言以及Perl语言和谐共处来融入Linux家族,所以被称为胶水语言。但随着Unix的闭源,Perl热度消减,于是python开始“穿Perl的衣服”,最后登堂入室,获得了比Perl更高的市场占有率)
2.调包侠(写python程序,面对需求时,很多时候的第一反应是去找是否有已经实现该功能的包可供调用)
python解释器的版本问题:
python2.X版本
python3.X版本
因为python3.X版本并不能向下兼容python2.X版本的语言,比如python2中的input要求用户必须输入一个明确的数据类型,输入什么类型就存成什么类型。而python2中的raw_input与python3中的input一样会将用户输入的任何内容都存成字符串类型。
而目前来说以python2.X版本编写的程序还有很多正在运营中,最好保留两个版本的python解释器。
环境变量控制
环境变量即系统查找文件的路径配置,在Win10中按照下图来配置路径,即可在powershell或者cmd命令行中输入python.exe来启动解释器,从而在cmd命令行中编写并运行python程序。
ps:若想在powershell或者cmd中分开启动python2和python3可以使用以下方式:
以python3.6为例,可以在其安装目录下,将python.exe拷贝一份在该目录下,并将其改名为python3.exe(之所以不能直接修改是因为原执行文件还需要和其他文件交互),并且别忘了像上图一样将该目录添加进环境变量。
pps:关于pip.exe
pip.exe是管理包用的,想要在powershell或者cmd分别对python2以及python3的pip进行管理,就要分别将他们的pip.exe所在文件夹添加进环境变量的path中去,需要注意的是,一般来说该路径下会有三个关于pip的执行文件,以python3.6为例,该目录下分别有“pip.exe;pip3.exe;pip3.6.exe”,所以应该在命令行中输入pip2或pip3来分别执行两个版本的pip文件。
当你需要下载包时,原来是连接国外数据库
但你也可以选择连接国内,比如:清华源的镜像
以下是使用方法:
在这个里面+号添加清华源的网址就可以了
https://pypi.tuna.tsinghua.edu.cn/simple
关于Mac版本
首先,Mac中自带python2.7版本,在安装其他版本时,按照默认流程安装,即可自动配好环境变量
在“终端”输入python(默认状态下)或者python2.7即可在终端中使用python2.7版本
在“终端”输入python3.6即可在终端中使用python3.6版本
其次,在Mac中后安装的python版本会储存在/Library/Frameworks/Python.framework/Versions/目录下
而系统自带的2.7版本会安装在/usr/bin/python目录下
python程序
关于变量
1.什么是变量?
量:衡量/记录事物的状态/特征
变:状态/特征是可以变化的
2.为什么要有变量?
帮助记录保存事物的某种状态或者特征
3.变量的定义
变量必须先定义后调用,变量名不要加引号(加了' '或者" "就变成字符串了)
4.变量的三要素
①.id(): 返回的是一串数字,这串数字即内存地址
②.type(): 返回的是该变量对应的数据的类型
③.value: 该变量指向的内存当中数据的值
5.小整数池()
0-256会以固定的地址信息保存在内存中。257开始,在内存中的地址将发生改变。
>>> a = 257
>>> b = 257
>>> id(a)
2919979319120
>>> id(b)
2919979576208
>>> c = 256
>>> d = 256
>>> id(c)
1642892736
>>> id(d)
1642892736
相对应的,还有常量,即不可变的量
然而python中没有常量
通常将全大写的变量名看为常量
python中的注释
首先要明确一点:
python中的注释是写给人看的,可能是给别人看,可能是之后给自己回顾。
在编写代码过程中要勤加注释,并且注释尽量细致,不要图精简,给日后回顾添麻烦。
注释的分类:
1.单行注释
Mac:⌘
Command + ?
补充:一般在要注释的代码后空两格,打#,然后空一格再写注释
# 单行注释
2.多行注释
三引号(可以是三个单引号,也可以是三个双引号)
'''
m = 70
n = 80
z = m
m = n
n = z
print(m,n)
'''
"""
m = 70
n = 80
z = m
m = n
n = z
print(m,n)
"""
计算机组成基础
一套完整的计算机系统由以下三部分组成:
1.应用程序
2.操作系统
3.计算机硬件
ps:
1.程序员开发的程序都叫应用程序
2.操作系统也是应用程序,只不过他针对的是计算机硬件
计算机五大组成部分:
1.控制器:计算机的控制系统
2.运算器:计算机的运算系统
逻辑运算:判断失误的对错...
数学运算:数字运算
控制器+运算器=计算机*处理器(CPU)
3.存储器
内存:
基于电工作的,通电数据正常读取,一旦断电数据即刻丢失
优点:读取速度快
缺点:断电数据丢失
外存:
优点:能够永久保存数据
缺点:读取速度慢
4.输入设备
键盘,鼠标,触摸屏
5.输出设备
显示器,音响,打印机
CPU工作流程
选取内存中读取内存
将命令解析翻译成自己能够对应上的操作步骤
控制硬件执行
编程语言发展史:
1.机器语言(机器语言即以“0101010”这样的二进制的形式,直接操作硬件。)
优点:机器能够直接读懂,执行效率高
缺点:开发效率极低
举例:
0000,0000,000000010000 代表 LOAD A, 16
0000,0001,000000000001 代表 LOAD B, 1
0001,0001,000000010000 代表 STORE B, 16
0001,0001,000000000001 代表 STORE B, 1[1]
2.汇编语言(用简单的英文标签来表示二进制,直接操作硬件。)
优点:开发效率高于机器语言
缺点:执行效率低于机器语言
举例:
###打印一句hello world需要些以下代码
; 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 ; 调用内核功能
3.高级语言
举例:PHP;C语言;C++;C#;java;python;go
1.编译型(就像是使用谷歌翻译)(比如 C语言)
一次翻译后,就可以拿着结果多次运行
编译的过程需要编译器
优点:执行效率高
缺点:开发效率低
2.解释型(就比如同声传译)(比如python)
一行一行的翻译(读一行翻译一行)
解释的过程需要解释器
优点:开发效率高
缺点:执行效率低
学习难度:
机器语言>>>汇编语言>>>高级语言
执行效率:
机器语言>>>汇编语言>>>高级语言
开发效率:
高级语言>>>汇编语言>>>机器语言