设为首页 收藏本站
查看: 890|回复: 0

[经验分享] Python 第一篇:python简介和入门

[复制链接]

尚未签到

发表于 2018-8-11 07:02:41 | 显示全部楼层 |阅读模式
  一、python简介
  1、python下载地址:https://www.python.org/downloads/
  Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。
  2、Python排行和使用场景:
  python在从2014年的排名第八升级为2015年的排名第5:
DSC0000.png

  Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。
  3、Python种类:
  Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
  Jyhton Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行转换后的程序
  IronPython  Python的C#实现,并且它将Python代码编译成C#中间代码(与Jython类似)
  PyPy  Python实现的Python
  其他实现方式:RubyPython、Brython、Pyobjc .
  4、python安装:
  Linux安装:
  linux默认自带python,但是centos和redhat的版本普遍比官方版本低很多,因此可以另外安装一个版本使用,步骤
  如下:
1、先安装gcc编译器,命令为:  
yum install gcc
  
2、解压Python安装包并编译安装,注意P为大写:
  
tar xvf Python-2.7.10.tgz
  
cd Python-2.7.10
  
./configure
  
make
  
make install
  
3、查看版本:
  
Python 2.7.10 (default, Jul 18 2015, 04:12:23)
  
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
  
Type "help", "copyright", "credits" or "license" for more information.
  
dlopen("/usr/local/python27/lib/python2.7/lib-dynload/readline.so", 2);
  
4、设置软连接: #不建议更改默认python版本,因为会出现系统错误,如yum是python写的,会导致yum无法使用
  
ln -sv /usr/local/python27/bin/python /usr/local/bin/python27
  
5、测试python:
  
[root@node5 Python-2.7.10]# python27
  
Python 2.7.10 (default, Jul 18 2015, 04:12:23)
  
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
  
Type "help", "copyright", "credits" or "license" for more information.
  
>>> print "Hello,你好"
  
Hello,你好
  二:使用python:
  1、使用vim编写一个脚本,内容如下:
  #!/usr/local/bin/python27
  print  "hello word!"
  执行脚本:
  [root@node5 python]# python hello.py
  hello word!
  2、python内部执行流程:
  pyhton程序先交给解释器,然后经过词法分析-->语法分析-->编译-->执行
DSC0001.jpg

  三、python编码:
  1、ASCII:(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号,且不支持中文,图标如下:
DSC0002.png

  2、Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536
  3、UTF-8:utF-8是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存,欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
  因为python默认的编码是采用的ASCII,所以在python直接输出中文会因为使用ASCII编码不支持中文而报错,如:
#!/usr/bin/python27  
#coding:utf-8 #声明使用utg-8编码
  
print "你好"
  

  
#此问题在python 3之后的版本不需要设置,因为python3默认编码即为utf-8
  4、编码转换:
  将utf-8或gbk格式的转换为unicode称为decode,将unicode转换为其他编码称为encode
  decode的作用是将其他编码的字符串转换成unicode编码
  encode的作用是将unicode编码转换成其他编码的字符串
DSC0003.png

  四:注释与帮助文档:
  单行注释: #注释内容,如:
print "你好" #第一个注释  夸多行注释: '''内容'''或""" 内容""",在python里单引号和双引号是没有区别的,如:
#!/usr/bin/python27  
#coding:utf-8
  
""" 第一
  
个注释 """
  
print "你好"
  五、 pyc 文件
  执行Python代码时,如果导入了其他的模块即其他的xx.py文件,那么,执行过程中会自动生成一个与其同名的和py文件同名的.pyc 文件,该文件就是Python解释器编译之后产生的字节码,代码经过编译可以产生字节码;字节码通过反编译也可以得到代码,即使删除该py文件之后python程序依然可以运行,因为python或优先读取pyc文件,但是假如手动修改了pyc文件,则python会重新读取py文件并重新生成新的pyc文件,因为python会内部判断,因此不需要也不能手动更改pyc文件。
  六:python变量:
  变量名称代表了内存中的某一段空间,空间里面保存的是变量的对象,变量可以是任何数值,但是变量的名称只能是数字、大小写字母和下划线,而且变量名的第一个字符不能是数字开头的,变量名不要使用和系统已经使用的特殊关键字
  不能作为的名字的关键字如下:
  ['and','as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else','except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in','is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try','while', 'with', 'yield']
  1、声明变量:
  name = "zhangshijie"
  print name
  2、变量的赋值:
a = "jack"  
b = "tom"
  其结果是在内存开启了两个地址空间,a和b分别表示这两个地址空间的内容。
DSC0004.png

a = "jack"  
b = a
  
以下会开启一个地址空间,两个变量名将指向同一个内存地址进行调用:
DSC0005.png

  七:获取用户输入:
  1、使用raw_input的方法获取用户输入的字符串信息给一个变量,然后把变量打印出来,还有另外一种方法input只能获取数值:
#/usr/bin/env  python  
# -*- coding:utf-8 -*-
  
name = raw_input("Please input yout name:")  #在python2中raw_input获取的为字串,inpu获取为数值
  
print "your name is:",name
  

  
在python3中,没有了raw_input,只有input方法,默然获取到的为字串,如果要获取数值,可以加上int(input("请输入你想要输入的数字或内容:"))
  2、输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#/usr/bin/env  python  
# -*- coding:utf-8 -*-
  
import  getpass
  
password = getpass.getpass("请输入你的密码")
  

  
print password
  
注:密码是隐藏的,而且运行的时候连输入密码的提示框都没有,可以在调试模式下看到详细的内容,如下:
  
Warning: Password input may be echoed.
  
请输入你的密码qqqqqqqq
  
qqqqqqqq
  八:python流程控和缩进:
  1、if else语句流程控制,进行判断用户输入,非A即B,python对缩进要求很严格,必须严格按照4个空格的方式进行排序,而且if下一级的代码必须与if保持4个空格换行间距,,即父代码要与子代码严格区分,如果缩进不符合要求会报缩进错误:
  IndentationError: unindent does not match any outer indentation level
#/usr/bin/env  python  
# -*- coding:utf-8 -*-
  

  
import getpass
  

  
name = raw_input('请输入你的用户名:')
  
pwd = getpass.getpass('请输入你的密码:')
  

  
if name == "jack" and pwd == "123abc":
  
    print "欢迎,jack!"
  
else:
  
    print "你的用户名和密码错误"
  2、if elif elif elif ...else: # 有N个判断条件,一次匹配一个条件,如下:
name = raw_input("请输入你的用户名:")  
if name == "jack":
  
    print "jack"
  
elif name == "tom":
  
    print "tom"
  
elif name == "lili":
  
    print "lili"
  
elif name == "wangwu":
  
    print "wangwu"
  
else:
  
    print "用户名不正确"
  八:python传递参数:
  使用python标准库sys模块中的argv方法获取用户传递的所有参数,以列表的形式展现用户传递的参数(在使用运行python程序的时候传递的参数,如python  xx.py  server1 192.168.0.1,则第0个参数是脚本本身,第一个参数是server1,第二个参数是192.168.0.1,以此类推),如下:
[root@node5 python]# vim argv.py  
  #!/usr/bin/python
  
  import sys
  
  print sys.argv
  
  print sys.argv[1] #读输出的列表进行分割,取第二个传递的参数是什么
  
[root@node5 python]# python argv.py  server1 192.168.0.1 #运行脚本传递参数
  
['argv.py', 'server1', '192.168.0.1']  #打印传递的所有参数
  
server1  #第二个参数
  二:Python的核心数据类型:
  数字—
  Int:整形
DSC0006.jpg

  long:长整形
DSC0007.jpg

  float:浮点型
DSC0008.jpg

  complex:负数
DSC0009.jpg

  bool:布尔型
  布尔类型只有两个值,False 和 True。
  通常用来判断条件是否成立。
  如果变量值为 0 就是 False,否则为 True,布尔类型只有这两个值。
  字符:str:字符型,字符串或串(String)是由数字、字母、下划线组成的一串字符,主要用单引号‘’或双引号标注区分,其中单引号和双引号没有区别
DSC00010.jpg

  列表:list,使用比较频繁,列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套),列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。
DSC00011.jpg

  元组:tuple,元组是另一个数据类型,类似于List(列表),元组用"()"标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。
DSC00012.jpg

  字典:dict(dictionary的简写),字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合,两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取,字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
DSC00013.jpg

  字典:dict(dictionary的简写),用{}创建和表示
  字典是可变的,其他编程语言中又称作数组或散列表,通过键实现元素存取,无序集合,可变类型容器,长度可变,支持异构(可同时包含数值和字符),支持嵌套(在字典中嵌套字典)
  1、创建字典:
  dict1 = {'ab':12,'bc':23}
DSC00014.jpg

  2、查看字典所支持的函数对象:
DSC00015.jpg

  3、获取函数的帮助文档信息:
  In [310]: help(dict.copy)  #格式为help(字典或字典名:函数名)
  Help on method_descriptor:
  copy(...)
  D.copy() -> a shallow copy of D
  4、dic1.copy():字典复制:
DSC00016.jpg

  5、dic2.get('x'):通过键来获取其对应的对象的内容:
DSC00017.jpg

  6、dic2.has_key('a')---> 查看字典对象中是否有某个指定的键,有返回True,无返回False
DSC00018.jpg

  7、dic2.values() #查看字典的键
  dic2.keys() #查看字典的值
DSC00019.jpg

  8、dic2.update(dic1)  #字典合并
DSC00020.jpg

  9、dic2.viewvalues() #以列表的方式显示键
  dic2.viewkeys() #以列表的方式显示值
DSC00021.jpg

  10、dic2.pop('d') #删除指定的键并显示此键对应的数值
DSC00022.jpg

  11、dic2.popitem() #随机删除键值并显示
DSC00023.jpg

  12、zip('abc','123')  #生成序列
  dict(zip('abc','123')) #将序列转换成字典
DSC00024.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-549824-1-1.html 上篇帖子: Python笔记(一)——C/C++调用python 下篇帖子: 【python学习】python连接数据库实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表