Python总结、数据运算及流程控制
发布时间:2021-12-09 16:09:14 所属栏目:PHP教程 来源:互联网
导读:一、Python概述 python的创始人为吉多范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 1、目前Python主要应用领域: (1)云计算: 云计算最火的语言, 典
一、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) [GCC 4.2.1 Compatible AppleLLVM 7.0.0 (clang-700.0.59.5)] 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 = [1,2,3,4] >>> a [1, 2, 3, 4] >>> 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 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |