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.sh 3. 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.当用户账号或密码输入三次错误之后,将账号冻结。
def login(username,password): if username=="lanist"and password=="123456": return True else: return False def main(): print("欢迎来自本系统") times = 0 while times<3: user = input("请输入用户名:") pwd = input("请输入密码:") is_login=login(user,pwd) if is_login: print("恭喜你,登录成功") continue else: times +=1 print("用户名或密码不正确") print("三次密码输入错误,账号冻结") main()