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

[经验分享] Python简介和入门

[复制链接]

尚未签到

发表于 2018-8-11 09:51:24 | 显示全部楼层 |阅读模式
  Python简介和入门:
  Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
  Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  •   Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
  •   Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。
  •   Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
  •   Python是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
  http://www.ziqiangxuetang.com/python/python-tutorial.html
  http://www.runoob.com/python/python-tutorial.html
Python特点

  •   1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  •   2.易于阅读:Python代码定义的更清晰。
  •   3.易于维护:Python的成功在于它的源代码是相当容易维护的。
  •   4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
  •   5.互动模式:互动模式的支持,您可以从终端输入并获得结果的语言,互动的测试和调试代码片断。
  •   6.便携式:Python可以运行在多种硬件平台和所有平台上都具有相同的接口。
  •   7.可扩展:可以添加低层次的模块到Python解释器。这些模块使程序员可以添加或定制自己的工具,更有效。
  •   8.数据库:Python提供所有主要的商业数据库的接口。
  •   9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
  •   10.可扩展性:相比 shell 脚本,Python 提供了一个更好的结构,且支持大型程序。

Python标识符
  在python里,标识符有字母、数字、下划线组成。
  在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
  python中的标识符是区分大小写的。
  以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入;
  以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。
Python保留字符
  下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。
  所有Python的关键字只包含小写字母。
DSC0000.png

行和缩进
  学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。
  缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:
#!/usr/bin/python  

  
import sys
  

  
try:
  
  # open file stream
  
  file = open(file_name, "w")
  
except IOError:
  
  print "There was an error writing to", file_name
  
  sys.exit()
  
print "Enter '", file_finish,
  
print "' When finished"
  
while file_text != file_finish:
  
  file_text = raw_input("Enter text: ")
  
  if file_text == file_finish:
  
    # close the file
  
    file.close
  
    break
  
  file.write(file_text)
  
  file.write("\n")
  
file.close()
  
file_name = raw_input("Enter filename: ")
  
if len(file_name) == 0:
  
  print "Next time please enter something"
  
  sys.exit()
  
try:
  
  file = open(file_name, "r")
  
except IOError:
  
  print "There was an error reading file"
  
  sys.exit()
  
file_text = file.read()
  
file.close()
  
print file_text
#多行语句  
#Python语句中一般以新行作为为语句的结束符。
  
#但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
  
total = item_one + \
  
        item_two + \
  
        item_three
  
  语句中包含[], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = ['Monday', 'Tuesday', 'Wednesday',  
        'Thursday', 'Friday']
  
Python 引号
  Python 接收单引号(' ),双引号(" ),三引号(''' """) 来表示字符串,引号的开始与结束必须的相同类型的。
  其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。
word = 'word'  
sentence = "This is a sentence."
  
paragraph = """This is a paragraph. It is
  
made up of multiple lines and sentences."""
  
Python注释
  python中单行注释采用 # 开头。
  python没有块注释,所以现在推荐的多行注释也是采用的 #比如:
#!/usr/bin/python  

  
# First comment
  
print "Hello, Python!";  # second comment  #注释可以在语句或表达式行末:
  
Python空行
  函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
  空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
  记住:空行也是程序代码的一部分。
等待用户输入
  下面的程序在按回车键后就会等待用户输入:
#!/usr/bin/python raw_input("\n\nPress the enter key to exit.")  以上代码中 ,"\n\n"在结果输出前会输出两个新的空行。一旦用户按下键时,程序将退出。
多个语句构成代码组
  缩进相同的一组语句构成一个代码块,我们称之代码组。
  像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
  我们将首行及后面的代码组称为一个子句(clause)。
  如下实例:
if expression :  
   suite
  
elif expression :
  
   suite
  
else :
  
   suite
命令行参数
  很多程序可以执行一些操作来查看一些基本信,Python可以使用-h参数查看各参数帮助信息:
python -h  
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
  
Options and arguments (and corresponding environment variables):
  
-B     : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x
  
-c cmd : program passed in as string (terminates option list)
  
-d     : debug output from parser; also PYTHONDEBUG=x
  
-E     : ignore PYTHON* environment variables (such as PYTHONPATH)
  
-h     : print this help message and exit (also --help)
  
-i     : inspect interactively after running script; forces a prompt even
  
         if stdin does not appear to be a terminal; also PYTHONINSPECT=x
  
-m mod : run library module as a script (terminates option list)
  
-O     : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x
  
-OO    : remove doc-strings in addition to the -O optimizations
  
-R     : use a pseudo-random salt to make hash() values of various types be
  
         unpredictable between separate invocations of the interpreter, as
  
         a defense against denial-of-service attacks
  
-Q arg : division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew
  
-s     : don't add user site directory to sys.path; also PYTHONNOUSERSITE
  
-S     : don't imply 'import site' on initialization
  
-t     : issue warnings about inconsistent tab usage (-tt: issue errors)
  
-u     : unbuffered binary stdout and stderr; also PYTHONUNBUFFERED=x
  
         see man page for details on internal buffering relating to '-u'
  
-v     : verbose (trace import statements); also PYTHONVERBOSE=x
  
         can be supplied multiple times to increase verbosity
  
-V     : print the Python version number and exit (also --version)
  
-W arg : warning control; arg is action:message:category:module:lineno
  
-x     : skip first line of source, allowing use of non-Unix forms of #!cmd
  
-3     : warn about Python 3.x incompatibilities that 2to3 cannot trivially fix
  
file   : program read from script file
  
-      : program read from stdin (default; interactive mode if a tty)
  
arg ...: arguments passed to program in sys.argv[1:]
  

  
Other environment variables:
  
PYTHONSTARTUP: file executed on interactive startup (no default)
  
PYTHONPATH   : ':'-separated list of directories prefixed to the
  
               default module search path.  The result is sys.path.
  
PYTHONHOME   : alternate <prefix> directory (or <prefix>:<exec_prefix>).
  
               The default module search path uses <prefix>/pythonX.X.
  
PYTHONCASEOK : ignore case in 'import' statements (Windows).
  
PYTHONIOENCODING: Encoding[:errors] used for stdin/stdout/stderr.
  
PYTHONHASHSEED: if this variable is set to 'random', the effect is the same
  
   as specifying the -R option: a random value is used to seed the hashes of
  
   str, unicode, buffer and datetime objects.  It can also be set to an
  
   integer in the range [0,4294967295] to get hash values with a predictable
  
   seed.
  
   DSC0001.png
  
  一. Python代码
vim hello.py  
#!/usr/bin/env python
  
# -*- coding: utf-8 -*-
  

  

  
import sys
  

  
print sys.argv
  python内部执行过程如下:
DSC0002.png

  二、解释器
  
  
  执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。
  如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:
# python hello.py  
['hello.py']
  
  三、内容编码
  python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
  ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
DSC0003.png

DSC0004.png

  显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
  Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
  注:此处说的的是最少2个字节,可能更多
  UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
  所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
  四、注释
  当行注视:# 被注释内容
  多行注释:""" 被注释内容 """
  五、执行脚本传入参数
  Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

  •   Python内部提供的模块
  •   业内开源的模块
  •   程序员自己开发的模块
  Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
  四、注释
  当行注视:# 被注释内容
  多行注释:""" 被注释内容 """
  五、执行脚本传入参数
  Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

  •   Python内部提供的模块
  •   业内开源的模块
  •   程序员自己开发的模块
  Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
  六、 pyc 文件
  执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
  注:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
  七、变量
  1、声明变量
#!/usr/bin/env python  
# -*- coding: utf-8 -*-
  

  
str= "flying"
  上述代码声明了一个变量,变量名为: str,变量str的值为:"flying"
  变量的作用:昵称,其代指内存里某个地址中保存的内容
  变量定义的规则:

  •   变量名只能是 字母、数字或下划线的任意组合
  •   变量名的第一个字符不能是数字
  •   以下关键字不能声明为变量名
      ['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']
  2、变量的赋值
  八、输入
#!/usr/bin/env python  
# -*- coding: utf-8 -*-
  

  
# 将用户输入的内容赋值给 name 变量
  
name = raw_input("请输入用户名:")
  

  
# 打印输入的内容
  
print name
  
  输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
  
#!/usr/bin/env python  
# -*- coding: utf-8 -*-
  

  
import getpass
  

  
# 将用户输入的内容赋值给 name 变量
  
pwd = getpass.getpass("请输入密码:")
  

  
# 打印输入的内容
  
print pwd
  
  python test.py
  请输入密码:
  1111
  九、流程控制和缩进
  需求一、用户登陆验证
#!/usr/bin/env python  
# -*- coding:utf-8 -*-
  

  
import getpass
  

  

  

  
# 提示输入用户名和密码
  

  
# 验证用户名和密码
  
#     如果错误,则输出用户名或密码错误
  
#     如果成功,则输出 欢迎,XXX!
  

  

  

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

  
if name == "flying" and pwd == "cmd":
  
    print "欢迎: %s " %name
  
else:
  
    print "用户名和密码错误"
python fly.py  
请输入用户名:flying
  
请输入密码:
  
欢迎: flying
  需求二、根据用户输入内容输出其权限
vim flying.py  
#!/usr/bin/env python
  
# -*- coding:utf-8 -*-
  

  

  

  

  

  
name = raw_input('请输入用户名:')
  

  

  
if name == "flying":
  
    print "超级管理员:%s" %name
  
elif name == "fly":
  
    print "普通管理员:%s" %name
  
elif name == "fly1":
  
    print "业务主管:%s"  %name
  
else:
  
    print "普通用户:%s"  %name
  外层变量,可以被内层变量使用
  内层变量,无法被外层变量使用
  十、初识基本数据类型
  1、数字
  2 是一个整数的例子。
  长整数 不过是大一些的整数。
  3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
  (-5+4j)和(2.3-4.6j)是复数的例子。
  int(整型)
  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
  long(长整型)
  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
  float(浮点型)
  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
  complex(复数)
  复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
  注:Python中存在小数字池:-5 ~ 257
  2、布尔值
  真或假
  1 或 0
  3、字符串
  "hello world"
  万恶的字符串拼接:
  python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
  字符串格式化
vim flying.py  
#!/usr/bin/env python
  
# -*- coding:utf-8 -*-
  

  
name = raw_input('请输入用户名:')
  

  

  
if name == "flying":
  
    print "超级管理员:%s" %name
  
elif name == "fly":
  
    print "普通管理员:%s" %name
  
elif name == "fly1":
  
    print "业务主管:%s"  %name
  
else:
  
    print "普通用户:%s"  %name
python  flying.py  
请输入用户名:flying
  
超级管理员:flying
  PS: 字符串是 %s;整数 %d;浮点数%f
  字符串常用功能:

  •   移除空白
  •   分割
  •   长度
  •   索引
  •   切片
  4、列表
  创建列表:
name_list = ['flying', 'fly', 'fly1']或name_list = list(['fly', 'fly1', 'flying'])  基本操作:

  •   索引
  •   切片
  •   追加
  •   删除
  •   长度
  •   切片
  •   循环
  •   包含
  5、元祖
  创建元祖:
ages = (111, 22, 33, 44, 551)或ages = tuple((11, 212, 331, 44, 55))  基本操作:

  •   索引
  •   切片
  •   循环
  •   长度
  •   包含
  6、字典(无序)
  创建字典:
person = {"name": "fly", 'age': 28}或person = dict({"name": "flying", 'age': 28})  常用操作:

  •   索引
  •   新增
  •   删除
  •   键、值、键值对
  •   循环
  •   长度
  PS:循环,range,continue 和 break
  十一、运算
  算数运算:
DSC0005.png

  比较运算:
DSC0006.png 赋值运算:

DSC0007.png

  逻辑运算:
DSC0008.png

  成员运算:
DSC0009.png

  身份运算:
DSC00010.png

  位运算:
DSC00011.png

  运算符优先级:
DSC00012.png

  十二、初识文本的基本操作
  打开文件:
  file_obj = file("文件路径","模式")
  打开文件的模式有:

  •   r,以只读方式打开文件
  •   w,打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
  •   a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
  •   w+,打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
  读取文件的内容:
# 一次性加载所有内容到内存  
obj.read()
  

  
# 一次性加载所有内容到内存,并根据行分割成字符串
  
obj.readlines()
  

  
# 每次仅读取一行数据
  
for line in obj:
  
  print line
  
  写文件的内容: obj.write('内容')
  关闭文件句柄:obj.close()
  
  

运维网声明 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-550005-1-1.html 上篇帖子: python try小例子 下篇帖子: Python简介和入门
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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