python教程学习
时间:2023-10-07 23:07:02
python教程学习
- 一、 ubuntu基本使用
-
- 1.简介
-
- 1.1. 目录
- 1.2. 基本使用常用命令
- 1.3 终端命令
- 1.4 查阅命令帮助信息
- 2. 文件目录相关
-
- 2.1 **通配符的使用**
- 2.2查看 ls
- 2.3切换 cd
- 2.4创建和删除 touch rm mkdir
- 2.复制和移动文件 cp mv
- 2.6 文件内容相关cat more grep
- 2.7.其他: echo 重定向>和>> 管道
- 3. 常用的远程管理命令
-
- 3.1关机/重启
- 3.2. 查看或配置网卡信息
- 3.3 远程登录和赋值文件
- 3.4 用户权限的基本概念
- 4.系统信息相关命令
-
- 4.1时间和日期
- 4.2磁盘信息
- 4.3进程信息
- 4.4 其他命令
- 二、Python 简介
-
- 1.Python 科普
- 2.第一个Python 程序
-
- 2.1第一个helloPython程序
- 2.2 执行Python三种程序方式
- 2.3 Pycharm
- 3. Python基础
-
- 3.0 Python 基本信息
- 3.1 多个文件
- 3.2.注释
- 3.3 算术运算符
- 3.4 计算机中的三大件
- 3.5 基本使用变量
- 3.51 字典
- 3.52 字符串
- 3.53 列表
- 3.6 语句
- 3.61 判断(if)语句
- 3.62 循环
- 3.7 函数基础
- 3.8 在模块中使用函数
- 3.9 高级变量类型
- 3.9.1 列表
- 3.9.2 元组
- 3.9.3 字典
- 3.9.4 字符串
- 3.9.10 集合
- 3.10 公共方法
- 3.11框架搭建
- 4.变量进阶
-
- 4.1 变量的引用
- 4.2 引用的概念
- 4.3 可变和不可变类型
- 4.4 局部变量和全局变量
- 5.函数高级话题
-
- 5.1 函数的参数和返回值
- 5.2 不可变参数和可变参数
- 5.3 缺省参数
- 5.4 多值参数
- 5.5 拆包元组和字典
- 5.6 函数的递归
- 三、面向对象(OOP)
-
- 1.类和对象
-
- 1.与对象的关系
- 1.2 类设计
- 2 面向对象的基本语法
-
- 2.1 dir 内置函数
- 2.2 定义一个简单的类别
- 2.3 初始化方法
- 2.4 内置方法和属性
- 3 面向对象的支柱
-
- 3.1 封装
- 3.2 继承
- 3.3多态
- 四、其他
-
- 1.异常
-
- 1.0 基本异常
- 1.1.异常概念
- 1.2.异常处理
- 1.3 捕捉未知错误:
- 1.3 异常传递
- 1.4 抛出 raise 异常
-
- 1.4.1 应用场景
- 1.4.2 抛出异常
- 1.5 try-finally
- 2.模块
-
- 2.1 模块概念
- 2.2 两种导入模块的方法
-
- 2.2.1 import导入
- 2.3 原则-每个文件都应该导入
- 2.4 包
- 2.5 发布模块
-
- 2.5.1 只发布压缩包
- 2.5.2 安装模块
- 2.6 pip 安装第三方模块
- 3 文件
-
- 3.1 存储文件的方式
- 3.2 基本操作文件
- 3.3. 打开文件
- 3.4 按行读取文件内容
- 3.5 常用的管理操作文件/目录
- 3.6 文本文件的编码格式
- 4 eval 函数
- 5 python 读取文件
-
- 5.1 read()方法
- 5.2 readline()方法
- 5.3 readlines()方法
- 6 python 写文件
- 7. Python 其他
-
- pass
- 三、vi 终端编辑器
-
- 1 学习 vi 的目的
- 2.vi 和 vim
-
- 2.1 打开文件并定位
- 2.2 异常处理
- 2.3 三种模式
- 3.补充
-
- 3.1 3引号换行法
- 四、Python技巧
-
- 5.1 创建一维二维数组
- 五、numpy
-
- numpy.mean() 计算矩阵均值
- numpy.dot
- np.identity
- 六 xlsx
一、 ubuntu基本使用
1.简介
励志公式:
1.01^365 = 37.8
0.99^365 = 0.03
1.01^3 * 0.99 ^2 <1.01 三天打鱼两天晒网43
Python 终端验证
- python
- 1.01 ** 365 将会输出 37.783
- 0.99 ** 365 将会输出 0.0255
1.1. 目录
Ubuntu 系统没有盘符的概念,只有目录
/
/ -> /etc /lib /bin /usr /home
/home -> /mayun /laowang /lvbu
/mayun -> /Desktop /python …
1.2. 常用命令基本使用
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ls | list | 查看当前文件下的内容 |
02 | pwd | print work directory | 查看当前文件夹 |
03 | cd [目录名] | change directory | 切换文件夹 |
04 | touch | touch | 如果文件不存在则新建文件 |
05 | mkdir [目录名] | make directory | 创建目录 |
06 | rm [目录名] | remove | 删除指定文件 |
07 | clear | clear | 清屏 |
小技巧
- ctrl + shift + = 放大终端中的字体显示
- ctrl + - 缩小终端窗口的字体显示
自动补全
在敲出 文件/目录/命令 的前几个字母后,按下tab键
文件输入没有奇异,系统会自动补全
1.3 终端命令
command [-options] [parameter]
说明
- command:命令名,相应的英文单词或者缩写
- [-options]:选项,用来对命令进行控制,也可以省略
- parameter :传给命令的参数,可以时零个、一个、或者多个
[] 代表可选
1.4 查阅命令帮助信息
–help
command --help
- 显示 command 命令的帮助信息
man
man command
- 查阅command 命令的使用手册
- man 是 manual 的缩写,Linux 提供的一个手册,包含绝大部分的命令、函数的歇息使用说明
2. 文件目录相关
2.1 通配符的使用
一些特殊的符号可以代替其他的字符
- . 任意个数个字符
- ? 代表任意一个字符,至少一个
- [] 表示可以匹配字符组中的任意一个
- [abc] 匹配a、b、c中任意一个
- [a-f] 匹配从a到f范围内的任意一个
2.2查看 ls
- -a 显示指定目录下所有目录与文件,包括隐藏文件
- -l 以列表方式显示文件的详细信息
- -h 配合-l 以人性化的方式显示文件大小
2.3切换 cd
- cd 切换当前用户的主目录(/home)
- cd ~ 切换当前目录的主目录
- cd . 保持在当前目录不变
- cd … 切换到上一级目录
- cd - 可以在最近两次工作目录中切换
绝对、相对目录 最前面是否 /或者~ 开头的目录
2.4创建和删除 touch rm mkdir
touch 文件不存在创建,存在修改创建时间
mkdir -p 递归创建目录
rm 使用rm命令要小心,文件删除后不能恢复
- -f 强制删除,忽略不存在的文件,无任何提示
- -r 递归删除目录下的内容,删除文件夹必须加此参数
2.5拷贝和移动文件 cp mv
cp拷贝
- cp -f 已存在文件直接覆盖,不会提示
- cp -i 覆盖文件前提醒
- cp -r 目录文件赋值,递归赋值
mv move的缩写,移动文件+重命名
- mv 源文件 目标文件
- mv -i 覆盖时会有一个提示
2.6 文件内容相关cat more grep
cat 文件名,查看文件内容,创建文件,合并文件,追加文件内容等功能
- 会一次显示所有的内容,适合 查看内容缺少的文本文件
- cat -b 对非空输出行编号
- cat -n 对输出所有行编号
- Linux中还有 nl 的命令 和 cat -b 的效果等价
more 文件名,分屏显示文件内容,每次只显示一页内容
- 适合于查看内容较多 的文本文件
- more的更多操作键:
- 空格键 显示手册页的下一屏
- Enter键 一次滚动手册页的一行
- b 回滚一屏
- f 前滚一屏
- q 退出
- /word 搜索world 字符串
grep 搜索文本 文件名,搜索文本文件内容
- -n 显示匹配行及行号
- -v 显示不包含匹配文件的所有行(想当于求反)
- -i 忽略大小写
2.7.其他: echo 重定向>和>> 管道
echo 一般跟重定向一起使用
- Linux 允许将命令执行结果 重定向到一个文件
- 将文本显示在终端的内容 输出/追加 到指定文件中
其中:
1.> 表示输出,会覆盖文件原有的内容
2. >>表示追加,会将内容追加到已有 文件的末尾
3. ls -lh > a 将当前目录的文本信息写到a文件中(重定向的一个例子)
管道 |
- Linux 允许将 一个命令的输出 可以通过管道 作为 另一个命令的输入
- 可以理解为显示生活中的管子,管子的一头塞进东西进去,另一头取出来,这里 | 的左右分为两端,左端塞东西(写),右端取东西(读)
管道的常用管道命令有:
more:分屏显示内容
grep:在命令执行结果的基础上查询指定的文本
例如: ls -lha | grep Do
tree命令
sudo apt-get install tree
tree [目录]
树型显示文件夹形式
3. 远程管理常用命令
3.1关机/重启
基本语法
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | shutdown 选项 时间 | shutdown | 关机/重启选项 |
shutdown
- shutdown 命令可以安全关闭 或者 重新启动系统
-r 重新启动
提示:
- 不指定选项和参数;默认1分钟之后关闭电脑
- 远程维护服务器时,最好不要关闭系统,而应该重启系统
常用命令
# 重启操作系统,其中now表示现在
$ shutdown -r now
# 立即关机,其中now表示现在
$ shutdown now
# 系统在今天20:25关机
$ shutdown 20:25
# 系统在十分钟后关机
$ shutdown +10
# 取消之前指定的关机计划
$ shutdown -c
3.2. 查看或配置网卡信息
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ifconfig | configure a network interface | 查看/配置计算机当前的网卡配置信息 |
02 | ping ip地址 | ping | 检测到目标ip地址 的链接时否正常 |
网卡和ip
网卡
- 网卡是一个专门负责网络通讯的硬件设备
- IP 地址是设置在网卡上的地址信息
我们可以把 电脑 比作 电话,网卡 相当于 SIM 卡,IP 地址 相当于 电话号码。IP 地址
- 每台电脑上都有 IP 地址,是保证电脑之间正常通讯的重要设置
注:每台电脑的IP 不能相同,否则会出现IP地址冲突,并且没办法保证正常通讯
ifconfig
可以查看/配置计算机当前的网卡配置信息
例如: ifconfig 查看网卡配置信息
ifconfig | grep inet 查看网卡对应的 IP 地址
提示:一个电脑可能有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以 ensXX表示
ping
ping IP地址 检测到目标主机是否连接正常
ping 127.0.0.1 检测本地网卡工作正常
ping 一般用于检测当前计算机到目标计算机之间的网络 是否畅通,数值越大,速度越慢
- ping 的工作原理与潜水艇的声納很相似,ping 这个命令曲子 声納的声音
- 网络管理员也常将ping 用作动词, --ping 一下计算机X,看他是否开着
提示:在Linux中,想要终止一个终端,绝大多数都可以使用 ctrl+c
3.3 远程登录和赋值文件
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ssh 用户名@ip | secure shell | 关机/重新启动 |
02 | scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 | secure copy | 远程复制文件 |
ssh 基础(重点)
- Linux 中SSH 是非常常用的公式,通过SSH客户端我们可以连接运行SSH服务器 的远程机器上
数据是 加密 压缩 的,保证安全和高速。
域名和端口号
域名:
- 由一串 用点分割 的名族组成 www.itcase.cn
- 是IP的别名,方便用户记忆
端口号:
1.IP地址:通过 IP地址 找到网络上的 计算机
2.端口号:通过 端口号 可以找到 计算机上运行的应用程序
3.常用服务端口号列表:
序号 | 服务 | 端口号 |
---|---|---|
01 | SSH 服务器 | 22 |
02 | Web服务器 | 80 |
03 | HTTPS | 443 |
04 | FTP服务器 | 21 |
提示:有关端号 的详细内容。
SSH 客户端简单使用
- ssh [-p port] user@remote
user:远程机器上的用户名,如果不指定的话 默认 当前用户名
remote:远程机器的地址,可以是IP/域名,或者是后面提到的别名
prot:是SSH Server 接听的端口,如果不指定,就是默认22
提示:使用 exit 退出当前用户的登录
注:
ssh 这个终端命令只能在Linux或者UNIX系统使用
如果在Windows系统中,可以用PuTTY,或者XShell 客户端软件即可
在工作中,SSH服务器的端口号可能不是22,需要-p指定,否则无法正确链接。
scp
Linux远程拷贝文件的命令
他的地址格式与ssh基本相同,需要注意的是,指定端口时是大学的P -P
例如:
- 把本地01.py复制到远程桌面下
scp -P port 01.py user@remote:Desktop/01.py- 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P user@remote:Desktop/01.py 01.py
-r 若给出的源文件是目录文件,则scp 将递归复制该目录下的所有子目录和文件,文件必须是一个目录名
-P 若远程端口号不是22,则需要使用大些字母 -P 选项指定端口。
SSH高级
免密码登录
配置别名
提示:有关SSH配置信息都保存在用户家目录下的.ssh目录下
免密码登录:
配置公钥
- 执行 ssh-keygeb 即可生成钥匙,一路回车即可
上传公钥到服务器 - 执行ssh-copy-id -p port user@remote,可以让远程服务器记录我们的公钥
配置别名
每次输入 ssh -p port user@remote,时间久了会觉得麻烦
配置别名可以让我们进一步偷懒,譬如用:ssh mac来代替上面这么一长串,那么就在 ~/.ssh/config 里面追加一下内容:
Host mac
HostName ip地址
User user
Port 22
保存之后即可使用。
3.4 用户权限基本概念
基本概念
- 用户是Linux 系统工作中重要的一环,用户管理包括 用户 与 组 管理。
- 在Linux系统中,不论是本地还是远程登录系统,每个系统都有一个账号,并且对于不同的系统拥有不同的使用权限
- 在Linux中可以指定 每一个用户 针对 不同文件或目录 的不同权限。
- 对文件的权限包括
序号 | 权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|---|
01 | 读 | read | r | 4 |
02 | 写 | write | w | 2 |
03 | 执行 | excute | x | 1 |
组
为了方便管理用户,提出组的概念
在实际应用中,可以预先针对 组 设置好权限,然后 将不同用户添加到对应的组中,从而不用依次为每个瀛湖设置权限
chmod
chmod 可以修改 用户 /组 对 文件/目录 的权限
chmod +/-rwx 文件名|目录
eg:chmod +x 01.py
目录如果没有可执行权限,将不能执行终端命令,例如ls cd 等。
3.4.1超级用户
- Linux系统中root账号通常 用于系统的维护和管理,对象系统的所有资源具有所有访问权限
- 在大多数版本的Linux中,都不推荐 直接使用root账号登录系统。
- 在Linux安装过程中,系统会自动创建一个用户账号,而这个默认的用户就是标准用户。
sudo
su 是substitute user的缩写,表示 使用另一个用户的身份。
sudo 命令用来以其他身份来执行命令,预设的身份为root
用户使用sudo时,必须先输入密码,之后5分钟的有效期限,超过期限时必须重新输入密码。 - 若其未经过授权的用户企图使用sudo,则会发出警告邮件给管理员。
组管理 终端令
- 提示,创建/删除组的终端命令都是需要通过sudo执行
序号 | 命令 | 作用 |
---|---|---|
01 | groupadd 组名 | 添加组 |
02 | groupdel 组名 | 删除组 |
03 | cat /etc/group | 确认组信息 |
04 | chgrp 组名 文件/目录名 | 修改文件/目录的所属组 |
提示:
- 组信息保存在/etc/group 文件中
- /etc 目录是专门用来保存系统配置信息的目录
- 在实际应用中,可以预先针对组设置好权限,然后将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限
mkdir Python学习 #创建 Python学习 目录
sudo groupadd dev #创建组dev
cat /etc/group #查看确定组是否被创建
sudo chgrp -R dev Python学习 #将 目录的组修改为 dev。
用户管理 终端令
提示:创建用户/删除用户/修改其他用户的密码的中断命令都需要通过sudo执行。
创建用户/设置密码/删除用户
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | usered -m -g 组 新建用户名 | 添加新用户 | -m 自动创建用户家目录 -g指定用户所在的组,否则会创建一个和同名的组 |
02 | passwd 用户名 | 设置用户密码 | 如果是普通用户,直接用passwd可以修改自己的账号密码 |
03 | userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户的家目录 |
04 | cat /etc/passwd | grep 用户名 | 确认用户信息 | 新建用户后,用户信息会保存在/etc/passwd 文件中 |
提示:
- 创建用户时,如果忘记添加 -m 选项指定新用户的家目录–最简单的方法是删除用户,重新创建
- 创建用户时,默认会创建一个和用户名同名的组名
- 用户信息保存在/etc/passwd文件中
查看用户id
序号 | 命令 | 作用 |
---|---|---|
01 | id [用户名] | 查看用户UID和GID信息 |
02 | who | 查看当前所有登录的用户列表 |
03 | whoami | 查看当前登录用户的账户名 |
paswd文件
- /etc/passwd 文件存放的是用户的信息,由6个分号组成的7个信息,分别是:
- 用户名
- 密码(x,表示加密的密码)
- UID(用户标识)
- GID(组表示)
- 用户全名或者本地账号
- 家目录
- 登录使用的shell,就是登录之后,使用的终端命令,ubuntu默认 dash
usermod
- usermod 可以用来设置用户的主组/附加组和登录shell,命令合适如下:
- 主组:通常在创建用户时指定,在 /etc/passwd的第4列GID对应的组
- 附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限
提示:设置了用户的附加组之后,需要重新登录才能生效!
# 修改用户的主组 (passwd中的GID)
usermod -g 组 用户名
# 修改用户的附加组
usermod -G 组 用户名
# 修改用户登录 Shell
usermod -s /bin/bash
**注意:**默认使用useradd添加的用户是没有全线使用sudo以root身份执行命令的,可以使用一下命令,将用户添加到sudo附加组中
usermod -G sudo 用户名
etc 目录是专门用来保存与系统相关的目录。
which(重要)
- etc/passwd 是用于保存用户信息的文件
- /user/bin/passwd 是用于修改用户密码的程序
- which命令可以查看执行命令所在的位置,例如:
which ls
# 输出
# /bin/ls
which useradd
# 输出
# /user/sbin/useradd
bin和sbin
- 在Linux中,绝大多数可执行文件都保存在/bin、/sbin、/usr/bin、/usr/sbin
- /bin(binary)是二进制执行文件目录,主要用于具体应用
- /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
- /usr/bin 后期安装的一些软件
- /usr/sbin 超级用户的一些管理程序
提示:cd 这个终端命令是内置在系统内核中的,没有独立文件,which无法找
切换用户
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | su - 用户名 | 切换用户,并且切换目录 | -可以切换到用户家目录,否则保持位置不变 |
02 | exit | 退出当前登录账号 |
注su 不接用户,可以切换到root,但不推荐使用,因为不安全
修改文件权限
序号 | 命令 | 作用 |
---|---|---|
01 | chown | 修改拥有者 |
02 | chgrp | 修改组 |
03 | chmod | 修改权限 |
命令格式
# 修改文件|目录的拥有者
chown 用户名 文件名|目录名
# 递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
# 递归修改文件权限
chmod -R 755 文件名|目录名
chmod在设置权限时,可以简单地使用三个数字分别对应拥有者/组和其他用户的权限
权限 拥有者,组,其他
4.系统信息相关命令
系统日期和时间,磁盘占用情况,程序执行情况。
#时间和日期
date cal
#磁盘和目录空间
df du
#进程信息
ps top kill
4.1时间和日期
序号 | 命令 | 作用 |
---|---|---|
01 | cal | 查看日历,-y选项可以查看一年的日历 |
02 | date | 查看系统时间 |
4.2磁盘信息
序号 | 命令 | 作用 |
---|---|---|
01 | df -h | disk free 显示磁盘剩余空间 |
02 | du -h [目录名] | disk usage 显示目录下的文件大小 |
选项说明:参数-h,以人性化的方式显示文件大小
4.3进程信息
所谓进程,通俗地说就是当前正在执行的一个程序
序号 | 命令 | 作用 |
---|---|---|
01 | ps aux | process status 查看进程的详细状况 |
02 | top | 动态显示运行中的进程并且排序 |
03 | kill [-9] 进程代号 | 终止指定代号的进行,-9代表强制终止 |
注意: ps 默认只会显示当前用户通过终端启动的应用程序
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 显示进程的详细信息状态 |
x | 显示没有控制终端的进程 |
提示: 使用kill命令时,最好只终止由当前用户开启的进程,而不要终止root身份开启的进程,否则可能导致系统崩溃。
- top显示 :进程代号,启动命令代号,cpu,内存占用率,时间,命令
- 要退出 top 可以直接输入q
- top -H -p 进程id 查看各进程 占有率
4.4 其他命令
- 查找文件 find
- 软连接 ln
- 打包和压缩 tar
- 软件安装 apt-get
查找文件
find 命令是功能非常强大,通常用来在特定的目录下 所搜符合条件的文件
- find [路径] -name “.py” 查找指定路径下扩展名为.py的文件,包括子目录
- 如果省略路径,则在当前文件中查找
- 之前学习的通配符,在使用find命令时同时可用(* ? 等)
软链接
- ln -s 被链接的源文件,链接文件
注意:
- 没有 -s 选项建立的是一个硬链接文件
没有文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接 - 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然可以使用。
文件软硬链接的示意图
在Linux中,文件名和文件数据是分开存储的。
删除文件名后,软链接不能访问数据,硬链接可以。
1.在Linux中,只有文件的 硬链接数==0 才会被删除
2.使用ls -l 可以查看一个文件的硬链接的数量
3.在日常工作中,几乎不会建立文件的硬链接
打包压缩
在不同的操作系统中,打包压缩的方式是不同的
- windows 常用 rar
- Mac 常用 zip
- Linux 常用 tar.gz
打包/解包
tar 是Linux 中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件
tar的命令格式如下:
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...
# 解包文件
tar -xvf 打包文件.tar
tar选项说明:
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档接档的详细过程,显示进度 |
f | 指定档案文件名称,f后面一定是 .tar 文件,所以必须放选项后面 |
注意:f 选项必须放在后面,其他选项顺序可以随意
压缩/解压缩
gzip
tar 与 gzip 命令结合可以实现文件打包和压缩
tar只负责打包,但不负责压缩
用gzip压缩tar打包后的文件,其扩展名为 xxx.tar.gz
在Linux中,最常见的压缩文件格式就是 xxx.tar.gz
命令格式如下:
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...
# 解压缩文件
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
选项 | 含义 |
---|---|
-C | 解压缩到指定目标,注意:要解压缩的目录必须存在 |
bzip2(two)
- tar与bzip2命令结合可以使用实现文件打包和压缩(用法和gzip一样)
tar只负责打包文件,但不压缩
用bzip2压缩tar打包后的文件,其扩展名一般用 xxx.tar.bz2
- 在tar命令中有一个选项-j可以调用bzip2,从而可以方便的实现压缩和解压缩的功能
# 压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径...
#解压缩文件
tar -jxvf 打包文件.tar.bz2
软件安装
通过apt安装/卸载文件
- apt是 Advanced Packaging Tool,是Linux下的一款安装包管理工具
- 可以在终端中方便地安装/卸载/更新软件包
# 1.安装软件
sudo apt install 软件包
# 2.卸载软件
sudo apt remove 软件包
# 3.更新已安装的包
sudo apt upgrade
例如:
sudo apt install sl #一个小火车提示
二、Python 简介
1.Python 科普
- python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
- Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
- Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
- Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
- Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
- Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
解释型语言
- 编译型语言->编译器->最终可执行文件-》操作系统
解释型语言->解释器-》操作系统 - 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差,如C,c++。
解释型语言:编写时不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了编译工作,但运行程序的时候,必须先解释在运行。 - 速度:编译型语言块
跨平台:解释型语言跨平台好
Python 设计目标
简单直观的语言,开源,像纯英语那样容易理解,适用于短期开发的日常任务。
Python 设计哲学
优雅,明确,简单
用一种方法,最好是只有一种来做一件事
明确没有或者很少有歧义的语法
为什么使用Python
代码量比较少
Python 特点
面向对象的思维方式
Python是完全面向对象的语言
- 函数、模块、数字、字符串都是对象,在Python中一切皆对象
- 完全支持继承、重载、多重继承
- 支持重载运算符,也支持泛型设计
Python拥有一个强大的标准库,Python语言的核心只包含数字、字符串、列表、字典等常见类型和函数,而且由Python标准库提供了系统管理、网络通讯、文本处理、数据库接口、图形系统、XML处理等额外的功能。
Python社区提供了大量的第三方模块,使用方式与标准库类似,他们的功能是覆盖科学计算、人工智能、机器人学习、Web开发、图形系统等多个领域。
优缺点
- 简单 ,易学,免费开源,高层语言,可移植性,解释性,面向对象,可扩展性,丰富的库,规范的代码。
可扩展性:不公开打吗可以用c,c++实现,然后在Python程序中使用他们。
缺点:运行速度,国内视场小,中文资料少,有速度要求改C++,架构选择少。
2.第一个Python 程序
执行Python的三种方式:
- 解释器–Python/Python3
- 交互式–ipython
- 集成开发环境–Pycharm
2.1第一个helloPython程序
Python源程序就是一个特殊格式的文本文件,可以使用任意文本编译软件做Python的开发
Python程序的文件扩展名通常用 .py
1.新建 01-helloPython.py文件
2.用gedit编辑,并输入
print("hello python")
print("hello world")
3.执行
python 01-helloPython.py
说明: print是的作用是把”“内部的内容输出到屏幕上
bug:程序不能执行,执行结果不是我们期望的
常见错误:
1.手误 print 写成printf
报错:NameError :name ‘printf’ is not defined
2.将多条print写到一行
报错:SyntaxError:invalid syntax
每行代码负责完成一个动作
3.缩进错误
报错:IndentationError:unexpected indent
python是一个格式非常严格的程序设计语言
Python 2.x 默认不支持中文
目前市面上只有两个Python的版本并存,分别为Python 2.x 和Python 3.x
Python 2.x 默认不支持中文,
Python 2.x 的解释器名称为 python
Python 3.x 的解释器名称为 python3
ASCII 字符只包含256个字符,不支持中文
Python 3.x 支持中文,终点集中到3.0版本上
Python 中文编码
#!/usr/bin/python
print "你好,世界";
Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。
解决方法为只要在文件开头加入 # -- coding: UTF-8 -- 或者 #coding=utf-8 就行了
注意:#coding=utf-8 的 = 号两边不要空格。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print("你好,世界");
注意:Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。如果你使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8,否则会出现类似以下错误信息:
2.2 执行Python程序的三种方式
解释器
Python解释器
# 使用 2.0
python xxx.py
# 使用 3.0
python3 xxx.py
其他解释器
CPython – 官方版本的C语言实现
Jython – 可以运行在java 平台
交互式Python程序
直接在终端中运行解释器,而不输入要执行的文件名
在Python的Shell 中直接输入Python的代阿凯码,会立即蓝岛程序执行的结果
交互式运行Python的优缺点
优:适合学习,验证Python语法或者局部代码
缺:代码不能保存,不适合太大的程序
官方Python 2.x 3.x
打开交互式Python
终端输入 python
退出 官方的解释器
1.直接输入 exit()
2.直接使用快捷键 ctrl+d
IPython
IPython 是一个Python的交互式Shell,比默认的好的多
支持自动补全、自动锁紧、支持bash shell命令、内置了很多有用的功能和函数
ipython、ipython3
退出输入exit()
直接使用热键 ctrl+d
Pycharm
pycharm中出现Process finished with exit code 0代表程序执行完成
- PyCharm 是由 JetBrains 打造的一款 Python IDE,支持 macOS、 Windows、 Linux 系统。
- PyCharm 功能 : 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……
- PyCharm 下载地址
- PyCharm 安装地址
特点:
1.图形用户界面
2. 代码编辑器(支持代码补全与缩进)
3. 编辑器/解释器
4. 调试器(断电/单步执行)
…
执行 shift+F10
调试 shift+F9
2.3 Pycharm
在配置界面,可以通过 Editor colors and fonts 选择 编辑器的配色方案
Pycharm的初始设置
pycharm 的配置信息是保存在用户目录下的 .Pycharmxxx.x 目录下的,xxx.x表示当前使用pycharm的版本号
如果要恢复pycharm的初始设置,可以按照以下步骤进行:
- 关闭正在运行的Pycharm
- 在终端中执行一下终端命令,删除Pycharm的配置信息目录
rm -r ~/.Pycharm2016.3 - 重启Pycharm
打开新建一个Python项目
项目简介
- 开发项目就是开发一个专门解决一个复杂业务功能的软件
- 通常每一个项目就是一个独立专属的目录,用于保存所有和项目相关的文件
一个项目通常会包含很多源文件
打开Python项目
- 直接点击open按钮,然后浏览到之前保存Python文件的目录,即可以打开项目
- 打开之后,会在目录下新建一个 .idea 的目录,用于保存项目的相关信息,例如:解释器版本,项目包含的文件等
- 第一次打开项目时,要耐心等待pycharm 对项目进行初始化
- 对.py文件右键,选择执行按钮,即可执行
设置项目使用的解释器版本
1.打开的目录不是有pycharm建立的项目目录,有时候使用的解释器时Python2.x的,需要单独设置解释器的版本
通过file->setting…可以打开设置窗口
设置字体等
通过file->setting->editor … Font可以设置字体的显示
下载安装
- 下载–官网有免费版本
- 安装-- 将解压后的目录移动到/opt目录下,方便其他用户使用
- /opt 目录用户存放给主机额外安装的软件
- 启动–bin 目录下的./pycharm.sh
- 卸载–删除文件和配置
注意:/usr/share/applications/下的桌面快捷方式
设置专业版启动图标
在专业版中,选择菜单Tool/create Desktop Entry …
注:设置图标时,勾选 create the entry for all users
3. Python基础
3.0 Python 基本信息
保留字符
下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。所有 Python 的关键字只包含小写字母。
and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield
Python多行语句
Python语句中一般以新行作为语句的结束符。
但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
total = item_one + \
item_two + \
item_three
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
引号
- Python 可以使用引号( ’ )、双引号( " )、三引号( ‘’’ 或 “”" ) 来表示字符串,引号的开始与结束必须的相同类型的。
- 其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
sentence = "这是一个句子。"
paragraph = """这是一个段落。 包含了多个语句"""
Python同一行显示多条语句
Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:
#!/usr/bin/python
import sys; x = 'runoob'; sys.stdout.write(x + '\n')
3.1 多个文件
- 在该项目中建立新的Python文件,要想让哪一个Python程序能够执行,必须首先通过鼠标右键的方式执行一下
- 对于初学这而言,一个项目中多个执行文件很方便
- 对于商业项目而言,通常在一个项目中,只有一个可以直接执行的Python源程序
3.2.注释
注释的作用:使用用自己熟悉的语言,在程序中对某些代码进行注释说明,增强代码的可读性
单行注释
- 以 # 开头,#右边的所有东西都被当做说明,而不是真正要执行的程序,只起到辅助说明的作用。
为保证代码的可读性,#后面建议先添加一个空格,然后再编写相应的说文字 - 在代码后面增加单行注释
在程序开发时,同样可以使用#在代码的后面(旁边)增加说明性文字,但是,需要注意的是,为保证代码的可靠性,注释和代码之间至少有两个空格。
多行注释
3. 如果希望编写的注释信息很多,一行无法显示,就可以使用多行注释
4. 要在python程序中使用多行注释,可以用一对连续的三个引号(单引号和双引号都可以)
5. 注释不是越多越好
3.3 算术运算符
算术运算符是运算符的一种
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 2+2=4 |
- | 减 | 4-2 =2 |
* | 乘 | 2*2=4 |
/ | 除 | 4/2=2 |
// | 取整除 | 9// 4 =2 |
% | 取余 | 9%2=1 |
** | 幂 | 2 ** 3 =8 |
在Python中 * 运算符还可以用于字符串,计算结果就是字符串重复指定次数的结果
IN: "-" * 10
OUT: ----------
先乘除后加减,从左到右, ()提高优先级
高低顺序为:**,* / % // ,+ -
3.4 计算机中的三大件
- CPU
中央处理器,超大规模的集成电路
负责处理数据/计算 - 内存
临时存储数据,断电后数据会消失
速度块,空间小(单价高) - 硬盘
永久存储数据,速度慢,空间大(价格低)
程序执行原理
- 程序运行前,程序是保存在硬盘中