<读书笔记>python笔记
1.Linux基础
操作系统:
1.桌面操作系统(个人电脑)
-
-
- Windows(个人,用户群体大,应用软件多)
- Linux(应用软件少)
- macOS(开发人员,,苹果公司,Unix)
-
2.服务器操作系统
-
-
- Linux(安全,稳定,免费,占用率高)
- Ubuntu国内镜像:http://mirrors.163.com/ubuntu-releases/
- Windows Server(付费,占用率低)
- Linux(安全,稳定,免费,占用率高)
-
3.嵌入式操作系统(智能硬件,人工智能)
-
-
- Linux
-
4.移动设备操作系统
-
-
- IOS
- Android(基于Linux)
-
虚拟机:本质是一个软件,用于模拟硬件设备(辅助学习陌生的操作系统)
Windows:单用户操作系统
Unix,Linux:多用户操作系统
Linux文件系统:
- 没有盘符的概念
- /是根目录、/home存储多用户各自的文件
- /etc :保存配置目录
- /bin:可执行二进制文件
图形界面的基本使用
- 任务栏:左边一栏
- ctrl+alt+t:终端
- Ctrl+shift+=:放大字体
- ctrl+-:缩小字体
- tab :自动补全
Linux终端命令(服务器的管理维护工作是通过SSH客户端完成的,所有需要了解Linux终端命令)(常用)
- ls:查看当前文件夹的内容
- pwd:查看当前所在的工作文件夹
- clear:清空屏幕
- touch:创建文件(touch 123.txt)
- cd:切换目录
- mkdir:创建目录
- rm:删除文件
- 命令 --help:获取帮助信息
- man 命名:终端命令的详细使用手册
常见命令
- 查看目录的内容
- ls:一个文件夹下的全部内容
- 以.开头的文件是隐藏文件
- ls -a:查看全部文件,包括隐藏文件
- ls -l:以列表的方式,显示详细信息(创建时间,日期,占用空间大小,文件或文件夹)
- ls -l -h :以列表的方式显示详细信息而且显示大小(可以以 ls -alh的方式使用)
- .表示当前目录
- ..表示上一级目录
- 文件相关命令
- touch 文件名:存在就修改最后修改日期,不存在则创建
- mkdir 目录名:创建目录
- mkdir -p a1/b1/c1/d1:连续创建多个目录(目录与文件不允许重名)
- rm 文件名: 删除文件或目录(直接从磁盘删除,不会进入回收站,不能回复)
- rm -r 目录名:可以一次性删除多级目录
- rm -f 目录名:强制删除(有就删除,没有也没有提示信息)
- rm *3:可以通过通配符删除以3结尾的文件
- tree 目录名:以树状图列出目录结构
- cp 源文件 目标文件:复制源文件(cp ~/桌面/123.txt .)
- tree -d 目录:只显示目录
- cp -i ~/桌面/123.txt ./a1/b1:提示复制是否覆盖
- cp -r 源目录 目标目录:复制目录
- mv 源文件 目标文件:移动文件
- mv 源文件 目标文件:都在当前目录,就会实现重命名
- mv -i 源文件 目标文件:覆盖前提示
- cat 文件名:查看文件所有内容
- more 文件名:查看分屏查看部分内容,按空格键查看剩下的内容,按回车滚动一行,b回滚一屏,f前滚一屏,q退出
- cat -b 文件名:查看内容并添加行号(不包括空行)
- cat -n 文件名:标识所有行的行号,包括空行
- grep 搜索内容 文件名:类似Ctrl+F的搜索
- grep -n 搜索内容 文件名:搜索并显示行号
- grep -v 搜索内容 文件名:搜索不包括搜索内容的(想包括行号就加入n,写成-vn)
- grep -i 搜索内容 文件名:搜索且忽略大小写
- grep ^xxx$ 文件名:利用正则表达式,限制首尾的搜索
- echo 文字内容:传递给终端的参数命令再显示一遍
- 重定向:本应显示在终端中的内容输出或追加到指定文件中(>表示输出,>>表示追加),保存输出结果
- echo xxx > 文件名:输出到指定文件,会完全覆盖
- echo xxx >> 文件名:追加到指定文件的末尾
- 远程管理命令
- shutdown 选项 时间:关机或重启(默认关机 ,-r代表重启(时间为now表示立即重启),时间默认一分钟,shutdown -c取消关机或重启操作)
- shutdown 20:30、+10、now:三种时间写法(一般维护重启,不要关机,没人给你开机)
- 网卡:负责网络通信的硬件设备(SIM卡)
- ip:网卡上的地址信息(电话号码)
- ifconfig:查看/配置计算机当前的网卡配置信息
- ping 地址:检测目标ip地址链接是否正常
- ifconfig | grep inet:管道是将前一个的输出结果作为后一个的输入
- 域名:IP地址的别名
- 端口号:通过IP地址找到计算机,通过端口号找到计算机上安装的程序
- 默认端口号:SSH服务器(22),web服务器(80),https(443),ftp(21)
- ssh [-p port]用户名@远程机器的地址(IP地址,域名,别名):管理服务器
- scp -P 22 用户名@远程机器地址:路径 :复制远程电脑上的文件
- tar -cvf 打包文件.tar 被打包文件/路径(多个文件用空格分割):打包文件(tar -cvf py.tar 01.py 02.py 03.py),只负责打包不负责压缩
- tar -xvf 打包文件.tar:解包文件,先CD到需要解压的目录(tar -xvf py.tar)
- gzip:可以压缩文件,tar和gzip结合就可以实现压缩成一个包
- tar -zcvf 打包压缩文件.tar.gz 被打包文件/路径(多个文件用空格分割):打包并压缩
- tar -zxvf 打包解压缩文件.tar.gz:解压缩
- bzip2(two):压缩格式是,压缩文件.tar.bz2(同gzip类似)
- tar -jcvf 打包压缩文件.tar.bz2 被打包文件/路径(多个文件用空格分割):打包并压缩
- tar -jxvf 打包解压缩文件.tar.bz2:解压缩
- vi编辑器,Vim是VI发展起来的
- 没有图形界面,用VI最佳的选择
- 只支持文本的编辑,不支持鼠标操作,没有菜单,只有命令
- vi 文件名:打开文件
- vi 新的文件名:新键文件
- vi 文件名 +行数:定位的行
- vi 文件名 +:定位的末尾
- python py文件名:python2运行
- python3 py文件名:Python3运行
访问私有属性,私有方法
对象._属性名/方法名__私有属性 :用这种方式可以访问私有属性,不提倡
2.笔记
异常
# 异常初级版 # 错误跳到except ''' try: # 不能确定的代码 num = int(input("请输入整数:")) print(num) except: # 错误提示 print("别输入非整数") ''' # 错误类型的捕获,函数出现异常会传递给调用函数的一方,如果没有处理异常就停止 # 函数的传递性,通常将对异常的处理放在主程序中 try: num = int(input("请输入一个整数:")) result = 8 / num print(result) except ZeroDivisionError: print("除0错误") except ValueError: print("请输入正确的整数") except Exception as error: print("未知错误 %s" % error) else: # 没有错误会执行,出现错误就跳过 print("成功") finally: print("无论错误与否都指向的代码") print("后续代码") # 主动抛出异常 def input_password(): pwd = input("输入密码(大于八位):") if len(pwd) >= 8: return pwd # 1.创建异常对象 ex = Exception("密码长度有问题") # 2.主动抛出异常 raise ex try: print(input_password()) except Exception as result: print(result)
包的使用:同时导入相关联的包
包名:hk_learn
__init__.py
from . import send_message from . import receive_message
send_message.py
def send(text): print("正在发送%s"%text)
receive_message.py
def receive(text): return "接收到消息的短信"
外界使用这个包
hk.py
import hk_learn hk_learn.send_message.send("hello") text = hk_learn.receive_message.receive('hello') print(text)
发布模块
1.制作setup.py
from distutils.core import setup setup(name="hk_learn", # 包名 version="1.0", # 版本 description="发送信息", # 描述信息 long_description="发送信息1.0", # 完整的描述信息 author="hk", # 作者 author_email="hk@qq.com", # 作者邮箱 url="www.hk.com", # 主页 # 包含的模块 py_modules=["hk_learn.send_message", "hk_learn.receive_message"])
在包所在目录下
F:\learn_python\pack>python setup.py build
F:\learn_python\pack>python setup.py sdist
运行结果
其中dist下的压缩包就是需要分享的
安装模块
切换到解压缩后setup.py所在目录下
python setup.py install
卸载,就在安装包的目录下,删除
hk_learn文件夹和hk_learn-1.0-py3.6.egg-info文件 即可
eval函数,将字符串当成有效表达式,并求值,返回得到的结果
(最简单的计算器)
input_str = input("请输入算术题:") print(eval(input_str))