root 发表于 2018-8-15 06:38:05

python概述、数据运算及流程控制

  python概述、数据运算及流程控制
  一、Python概述
  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
  1、目前Python主要应用领域:
  (1)云计算: 云计算最火的语言, 典型应用OpenStack
  (2)WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  (3)科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthoughtlibrarys,pandas
  (4)系统运维: 运维人员必备语言
  (5)金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
  (6)图形GUI: PyQT, WxPython,TkInter
  2、 Python在一些公司的应用:
  (1)谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
  (2)CIA: 美国中情局网站就是用Python开发的
  (3)NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
  (4)YouTube:世界上最大的视频网站YouTube就是用Python开发的
  (5)Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
  (6)Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
  (7)Facebook:大量的基础库均通过Python实现的
  (8)Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
  (9)豆瓣: 公司几乎所有的业务均是通过Python开发的
  (10)知乎: 国内最大的问答社区,通过Python开发(国外Quora)
  (11)春雨医生:国内知名的在线医疗网站是用Python开发的
  除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
  3、编译和解释的区别
  (1)编译器:是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
  (2)解释器:则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
  4 python的优缺点
  (1)python的优点
  1)简单易懂
  2)开发效率非常高,非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
  3)高级语言:当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
  4)可移植性:开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。
  5)可扩展性
  6)可嵌入性
  (2)python的缺点
  1)速度慢,
  2)代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的
  3)线程不能利用多CPU问题
  5 python的解释器
  (1)CPython:当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
  CPython是使用最广的Python解释器。
  (2)IPython:IPython是基于CPython之上的一个交互式解释器, CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
  (3)PyPy:PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
  绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
  (4)Jython:Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
  (5)IronPython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
  二、Python应用基础
  1、Python安装
  (1)windows的安装
  1)、下载安装包(https://www.python.org/downloads/)
  2)、安装:默认安装路径:C:\python27
  3)、配置环境变量
  【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】。如:原来的值;C:\python27,切记前面有分号
  (2)linux、Mac下安装
  无需安装,原装Python环境 (ps:如果自带2.6,请更新至2.7)
  (3)centos下安装Python2.7
  yum install tk-devel
  yum install readline-devel
  cd /home/dayi123/tools/Python-2.7.12
  ./configure --prefix=/usr/local/python
  yum install gcc -y
  ./configure --prefix=/usr/local/python
  make
  make install
  python -V
  mv /usr/bin/python /usr/bin/python-2.6.6
  ln -s /usr/local/python/bin/python /usr/bin/python
  ll /usr/bin/python*
  python -V
  sed –i “s@#!/usr/bin/python@#!/usr/bin/python-2.6.6@g”/usr/bin/yum
  2、Python操作基础
  (1)第一个python程序输出”hello world!”程序
  在linux 下创建一个文件叫hello.py,并输入然后执行命令:python hello.py ,输出
  localhost:~ dayi123$ vim hello.py
  print("Hello World!")
  localhost:~ dayi123$ python hello.py
  Hello World!
  (2)指定解释器
  上一步中执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。如果想要类似于执行shell脚本一样执行python脚本,例:./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:
#!/usr/bin/env python  
print "hello,world"
  如此一来,执行: ./hello.py 即可。(ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py)
  (3)在交互器中执行 
  除了把程序写在文件里,还可以直接调用python自带的交互器运行代码, 
  localhost:~ dayi123$ python
  Python 2.7.10 (default, Oct 23 2015, 18:05:06)
   on darwin
  Type "help", "copyright", "credits" or "license" for moreinformation.
  >>> print("Hello World!")
  Hello World!
  3、变量
  (1)声明变量
#!/bin/env python  
#-*- coding:utf-8 -*-         #制定字符编码
  
name = "dayi"               #声明变量
  
user,name = ‘dayi’,’dayi123’   #同时声明两个变量
  (2)变量定义的规则:
  1)变量名只能是 字母、数字或下划线的任意组合
  2)变量名的第一个字符不能是数字
  3)以下关键字不能声明为变量名:['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']
  (3)变量的赋值
name = "dayi123"      #申明一个变量name  
name2 = name      #将变量name赋值给变量name2
  
print(name,name2)
  
name = "Jack"      #给变量name重新赋值给jack
  
print("What is thevalue of name2 now?")   #name2的值依然是dayi123
  (4)常量:Python中没有定义常量,定义常量时常量名全部大写
  4、字符编码
  (1)ASCII码:
  python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)ASCII(AmericanStandard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
  python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
  (2)Unicode(统一码、万国码、单一码、标准万国码)是业界的一种标准,它可以使电脑得以体现世界上数十种文字的系统。
  (3)UTF-8是一种针对Unicode的可变长度字符编码(定长码),UTF-8使用一至四个字节为每个字符编码。
  (4)Python中字符编码使用注意事项
  1)ascii码无法表示中文
#!/usr/bin/env python  

  
print "你好,世界"
  2)指定python解释器(Python3版本不需要),用什么编码来执行源代码,
#!/usr/bin/env python         #指定Python解释器  
# -*- coding: utf-8-*-         #指定字符编码
  

  
print "你好,世界"
  5、Python的注释
  (1)单行注视:# 被注释内容
  (2)多行注释:"""被注释内容 """
  6、用户输入 
  (1)、用户输入
#!/usr/bin/env python  
#_*_coding:utf-8_*_
  
#name =raw_input("What is your name?") #Python2.7中用户输入的写法
  
name = input("Whatis your name?")    #接受用户的输入,并赋值给变量name
  
print("Hello " + name )
  (2)、将输入内容按格式批量输出:
#!/bin/env python  
#-*-coding:utf-8-*-
  
# Author:Dayi123
  
name = input("please input your name:")
  
age = int(input("please input your age:"))
  
job = input("please input job:")
  
msg = '''
  
InFormation of user %s:
  
--------------------------------
  
Name:   %s
  
Age:    %d
  
Job:    %s
  
-------------End----------------
  
''' % (name,name,age,job)
  
print(msg)
  (4)、输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法
#!/usr/bin/env python  
# -*- coding: utf-8-*-
  
import getpass
  
pwd = getpass.getpass("请输入密码:")#将用户输入的内容赋值给pwd变量,输入的内容不显示
  
print(pwd)               #打印输入的内容
  7、Python常用模块初始 
  (1)模块的使用
  Import os                      #引入os模块
  import tab                              #引入tab补全模块
  os.system(“df -h”)                  #通过os模块调用系统命令
  os.mkdir(‘yourdir’)
  cmd_res = os.popen(‘ls -l’).read()          #将命令的执行结果保存到变量中
  import sys                              #引入sys模块
  print(sys.path)                               #查看包含模块的目录
  Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持。
  (2)常用模块
  1)sys
#!/usr/bin/env python  
# -*- coding: utf-8-*-
  
import sys
  
print(sys.argv)                   #输出
  
$ python test.py heloworld
  
['test.py', 'helo', 'world']   #把执行脚本时传递的参数获取到了
  2)os
#!/usr/bin/env python  
# -*- coding: utf-8-*-
  
import os
  
os.system("df -h")         #调用系统命令
  三、Python数据运算
  1、算术运算
  运算符
  描述
  实例
  +
  加运算
  a=20,b=10 a+b=30
  -
  减法运算
  a=20,b=10 a-b=10
  *
  乘运算
  a=20,b=10 a*b=200
  /
  除运算
  a=20,b=10 a/b=2
  %
  取模运算
  a=20,b=10 a%b=0
  **
  幂运算
  a=2,b=12 a**b=4
  //
  取整数,返回商的整数部分
  a=20,b=10 a//b=0
  2、比较运算
  运算符
  描述
  实例
  ==
  等于,判断两个对象是否相等
  a=20,b=10 ,(a == b)返回False
  !=
  不等于,比较两个对象是否不相等
  a=20,b=10 ,(a != b)返回True
  <>
  不等于,比较两个对象是否不相等
  a=20,b=10 (a <> b)返回True
  >
  大于
  a=20,b=10 (a > b)返回True
  <
  小于
  a=20,b=10 (a < b)返回False
  >=
  大于等于
  a=20,b=10 (a >= b)返回True
  <=
  小于等于
  a=20,b=10 (a <= b)返回False
  3、赋值运算
  运算符
  描述
  实例
  =
  赋值运算
  c=a+b即将a+b结果赋值给c
  +=
  加法赋值运算
  a+=b等同于a=a+b
  -+
  减法赋值运算
  a-=b等同于a=a-b
  *=
  乘法赋值运算
  a*=b等同于a=a*b
  /=
  除法赋值运算
  a/=b等同于a=a/b
  %=
  去摸赋值运算
  a%+=b等同于a=a%b
  **=
  赋值运算幂
  A**=b等同于a=a**b
  //=
  取整数赋值运算
  a//=b等同于a=a//b
  4、逻辑运算
  运算符
  描述
  and
  布尔与,如果a为False,b为False,a and 为False
  or
  布尔或,如果a为True,b为False,a or b 为True,有一个为True则为True
  not
  布尔“非”,如果a为True,not a 为False
  >>> a = '333'
  >>> if not a.isdigit():print(ddd)
  ...
  >>> a.isdigit()
  true
  5、成员运算
  运算符
  描述
  in
  如果在指定的序列中找到值返回True,否则返回False
  not in
  如果在指定的序列中没有找到值返回True,否则返回False
  
  >>> a =
  >>> a
  
  >>> if 1 not in a: print('not')
  ...
  >>> if 31 not in a:print('not')
  ...
  not
  >>> if 31 in a:print('yes')
  ...
  >>> type(a) is list
  True
  6、身份运算
  运算符
  描述
  is
  判断两个标识是否应用自同一个对象,x is y,如果id(x)等于id(y),返回1
  is not
  同is判断相反
  7、位运算
  运算符
  描述
  &
  按位与运算符
  |
  按位与运算符
  ^
  按位与运算符
  ~
  按位与运算符
  <<
  按位与运算符
  >>
  按位与运算符
  8、运算符优先级(从高到低)
  (1)**(指数运算)最高优先级
  (2)- + ~ (一元加号和减号,按位翻转)
  (3)* / % // (乘、除、去摸、去整数)
  (4)+ - (加法、减法)
  (5)>> << (左移、右移)
  (6)&(位‘AND’)
  (7)^|(位运算)
  (8)<= < > >= (比较运算符)
  (9)= %= /= //= -= += *= **=(赋值运算符)
  (10)is ,is not (身份运算符)
  (11)in not in (成员运算符)
  (12)not or and (逻辑运算符)
  四、Python流程控制语句
  1、if ... else
  用法举例:
# 提示输入用户名和密码,验证用户名和密码  
#    如果错误,则输出用户名或密码错误
  
#    如果成功,则输出 欢迎,XXX!
  
#!/usr/bin/env python
  
# -*- coding: encoding-*-
  
import getpass
  
name = raw_input('请输入用户名:')
  
pwd = getpass.getpass('请输入密码:')
  
if name == "dayi123" and pwd == "cmd":
  
    print("欢迎,dayi123")
  
else:
  
    print("用户名和密码错误")
  2、for loop
  (1)for循环用法:
#_*_coding:utf-8_*_  
for i in range(10):
  
    print("loop:",i )
  (2)for循环用法举例
  需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
for i in range(10):  
    if i<5:
  
      continue #不往下走了,直接进入下一次loop
  
    print("loop:",i )
  需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
#!/bin/env python  
#-*-coding:utf-8-*-
  
# Author:Dayi123
  
for i in range(10):
  
    if i>5:
  
      break      #不往下走了,直接跳出整个loop
  
    print("loop:",i )
  猜年龄游戏:
#!/bin/env python  
#-*-coding:utf-8-*-
  
# Author:Dayi123
  
age = 21                     #定义一个年龄的变量
  
count = 0                  #定义一个计算器
  
for i in range(10):               #forx循环10此
  
    if count <3:               #如果count的值小于3,则执行下面语句
  
      guess_num =int(input("iniput your guess num:"))#提示用户输入猜的数字
  
      if guess_num == age:      #如果猜对了执行下面语句
  
         print("Congratulations!you got it......")
  
            break
  
      elif guess_num >age:       #如果猜大了,执行下面语句
  
            print("thinksmall")
  
      else:               #如果猜小了,执行下面语句
  
            print("thinkbig.........")
  
    else:                   #如果猜了三次还没才对,则执行下面语句
  
      continue_confirm = input("Doyouwant to continue you are stupid:")
  
      if continue_confirm == 'y':   #如果还想猜,则执行下面语句
  
            count = 0      #将count的值初始化为0
  
            continue
  
      else:               #如果不想猜了,则执行下面语句
  
            print("bye")
  
            break         #退出整个循环
  
    count += 1
  3while loop 
  (1)海枯石烂死循环:
#!/bin/env python  
#-*-coding:utf-8-*-
  
# Author:Dayi123
  
count = 0
  
while True:               #条件为真,一直循环
  
    print("你是风儿我是沙,缠缠绵绵到天涯...",count)
  
    count +=1
  (2)上面的代码循环100次就退出吧:
#!/bin/env python  
#-*-coding:utf-8-*-
  
# Author:Dayi123
  
count = 0
  
while True:
  
    count += 1               #每循环一次,count加1
  
    if count >50 and count < 60:      #如果count大于50小于60则跳过本次循环
  
      continue
  
    print("你是风儿我是沙,缠缠绵绵到天涯",count)
  
    if count == 100:            #如果count等于100,则退出整个循环
  
      print("去你妈的风和沙")
  
      break
页: [1]
查看完整版本: python概述、数据运算及流程控制