1.介绍
1.1介绍
Python结合了解释型,编译型,互动性和面向对象的脚本动态语言
静态语言(强类型语言):在编译变量时数据类型可确定的语言,多数此类型语言在要求使用变量之前声明数据类型
如:c++,java,c#等
动态语言:变量使用之前不需要声明类型,通常变量的类型是被赋值的那个值的类型
如:php,python,sql,unix shell,javascript
1.2 python的优缺点
优点:
简单,明确,开发效率高,可移植性,可扩展性,可切入性
缺点:
运行速度慢,代码不能加密,线程不能利用多CPU的问题
因为有CIL(全局解释器锁),一个python解释器进程内有一条主线程,以及多条用户程序执行的线程。禁止多线程并行执行。
Python能完成:web框架,科学计算,GUI图形化开发,运维自动化,网络编程,提升运维效率,完成标准化--自动化--智能化的运维历程
2.python解释器
解决解释型语言执行效率低下的问题
1.Cpython:官方默认解释器,用c语言编写
2.Pypy:提高执行速度,在这两种解释器上运行代码,结果可能不同
3.sheskin:翻译,把python代码翻译成c++,在编译成pyd,so模块。
4.Psyco:运行更快
3.环境搭建
3.1 windows
略
3.2linux
①解压
tar xf Python-3.7.3.tar.xz
②安装
[root@bogon Python-3.7.3]# yum install gcc gcc-c++ make zlib* -y
[root@bogon Python-3.7.3]# yum install libffi-devel -y
[root@bogon Python-3.7.3]# ./configure --prefix=/usr/local/python3
[root@bogon Python-3.7.3]# make
[root@bogon Python-3.7.3]# make install
③配置执行路径
export $PATH
[root@bogon Python-3.7.3]# cd /usr/bin
[root@bogon bin]# ln-fs /usr/local/python3/bin/python3 /usr/bin/python3
④测试python3和python2能不能分别调用
python3
python2
3.3安装PyCharm
在linux和windows下都安装
3.4.开发虚拟环境
3.4.1.什么是虚拟环境
虚拟环境就是从电脑独立开辟出来的环境,相当于一个副本或备份,在这个环境你可以安装私有包,而且不会影响系统中安装的全局Python解释器。
3.4.2为什么要用虚拟环境
解决每个项目使用不同的框架库,避免混乱
3.4.3安装虚拟环境
windows上:
pip install virtualenv
如果失败了
python -m pip install --upgrade pip之后再用上面的下载
注意:如果下载过慢可在用国内源下载:
pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple virtualenv
linux上
如果没有pip命令先下载epel源
yum install epel-release -y
[root@localhost etc]# yum install python-virtualenv
同样太慢可配置国内源
[root@localhost ~]# yum install python-pip
[root@localhost~]# pip install --upgrade pip#升级
[root@localhost etc]# pip install-i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple virtualenv
3.4.4新建虚拟环境
windows
virtualenv scrapytest 创建名为 scrapytest 的虚拟环境
virtualenv-p C:\...(python安装目录) \python.ext scrapytest
linux下
(1)生成虚拟环境
[root@localhost ~]# virtualenv py2
(2)root下生成py2的目录,运行虚拟环境
1.[root@localhost ~]# cd py02/bin/[root@localhost bin]# source activate
(py02) [root@localhost bin]#
2.[root@localhost bin]# virtualenv -p /usr/local/bin/python3 py3
(3)退出虚拟环境
(py02) [root@localhost bin]# deactivate
[root@localhost bin]#
(4)管理虚拟环境
安装virtualenvwrapper
1.pip install -i https://pypi.douban.com/simple/ virtualenvwrapper
2.find / -name virtualenvwrapper.sh3. vim /root/.bashrc 的路径
export WORKON_HOME=$HOME/.virtualenvs #存放虚拟环境
source/usr/bin/virtualenvwrapper.sh #配置环境变量
4.Reboot
使用virtualenvwrapper
mkvirtualenv py3 #创建虚拟环境
mkvirtualenv--python=/usr/local/python3/bin/python3 py3 #运行虚拟环境
deactivate #退出
workon"查看虚拟环境"workon name_virtual03 “运行虚拟环境”
4.基础语法
4.1标识符
由字母、数字、下划线组成。但不能以数字开头。
_name(以下划线开头):不能直接访问的类属性
__name(以2个下划线开头):类的私有成员
_name_:表示的特殊方法,例:_main_
不能做标识符:and,or,not (python预留的字符)
4.2注释
单行: #
多行:''' 注释内容 '''
4.3用户交互
input()方法 输入
print() 输出
格式化输出四种
①字符串拼接
#!/usr/bin/env python
hosts= input("please input your hosts:")
hostname= input("please input your hostname:")
ip= input("please input your ipaddr:")
ns= input("please input your NS:")
info = '''--------------host:'''+ hosts + '''-------------------
host:''' + hosts + '''hostname:''' + hostname + '''ip:''' + ip + '''ns:'''+ ns + '''
'''
print(info)
②带格式输出
hosts = input("please input your hosts:")
hostname= input("please input your hostname:")
ip= input("please input your ipaddr:")
ns= input("please input your NS:")#print(hosts,hostname,ip,ns)
info = '''--------------info of %s -------------------
host: %s
hostname: %s
ip: %s
ns: %s''' %(hosts,hosts,hostname,ip,ns)print(info)
③format函数映射
hosts = input("please input your hosts:")
hostname= input("please input your hostname:")
ip= input("please input your ipaddr:")
ns= input("please input your NS:")#print(hosts,hostname,ip,ns)
info = '''--------------info of {_host} -------------------
host: {_host}
hostname: {_hostname}
ip: {_ip}
ns: {_ns}''' .format(_host =hosts,
_hostname=hostname,
_ip=ip,
_ns=ns
)print(info)
④format函数顺序映射
hosts = input("please input your hosts:")
hostname= input("please input your hostname:")
ip= input("please input your ipaddr:")
ns= input("please input your NS:")#print(hosts,hostname,ip,ns)
info = '''--------------info of {0} -------------------
host: {0}
hostname: {1}
ip: {2}
ns: {3}'''.format(hosts,hostname,ip,ns)print(info)
作业:
(1)博客
(2)使用python实现一个用户登录的功能:
a.让用户输入:
username:
password:
b.认证成功之后“欢迎登录....”
c.当用户账号或密码输入三次错误之后,将账号冻结。
deflogin(username,password):if username=="lanist"and password=="123456":returnTrueelse:returnFalsedefmain():print("欢迎来自本系统")
times=0while times<3:
user= input("请输入用户名:")
pwd= input("请输入密码:")
is_login=login(user,pwd)ifis_login:print("恭喜你,登录成功")continue
else:
times+=1
print("用户名或密码不正确")print("三次密码输入错误,账号冻结")
main()