Python与星球大战背后的工业光魔

提起Python语言,很多人会想起系统运维、Web开发等工作。很少有人会知道Python也能够用于电影视觉特效的制作,其中就包括了《星球大战》某些电影特效的制作。

星战之父乔治·卢卡斯于1975年创建了工业光魔(全称:Industrial Light and Magic),从第一部《星球大战》起便参与了电影的特效制作。据Python官网介绍,工业光魔从1996年起开始使用Python语言,取代了此前的Unix shell脚本。工业光魔做出这个决定的原因,在于Python的学习难度低,开发速度快。当时,Python还只是1.4版本。

电影特效行业竞争十分激烈,制作公司会不断地寻找更加优秀的编程语言,提高工作效率。工业光魔也是一直在评估Python语言的使用,但是近20年以来,还没有找到一个更好的替代品。

工业光魔的资深技术总监Tommy Burnette曾经这样评价道:

Python在我们的生产流程中扮演了至关重要的作用。如果没有它,像《星球大战》第二部这样的大项目就很难完成。从集体渲染到批量处理再到影片合成,Python将所有步骤都紧密的粘合在了一起。

由此可见Python的强大。

Star Wars API

你知道《星球大战》系列大战中出现了多少个种族,多少种飞船吗?这些答案都可以在Star Wars API中找到。

据开发者介绍,Star Wars API是全球首个量化的、可供编程使用的星战数据集。开发者经过漫长的搜集和整理,汇总了星战系列电影中的人物、种族、星球、飞船等详细数据。目前,这个API中已经收录了《原力觉醒》中的新数据。API的作者还用Python开发了一个helper库。

我们来看看可以用这个库做些什么。

将所有星球按大小排列:

import swapi

for planet in swapi.get_all("planets").order_by("diameter"):

print(planet.name)

查看哪些人开过1艘以上的飞船:

import swapi

for people in swapi.get_all("people").iter():

if len(people.starships) > 1:

print(people.name)

检索Jar Jar Binks是否在电影中出现:

import swapi

pm = swapi.get_film(4)

jj = swapi.get_person(36)

for c in pm.get_characters().iter():

if c.name == jj.name:

print("Why George, why.")

Python编写的Star Wars小游戏

最后,再与大家分享一个国外开发者用Python开发的星战相关游戏,希望大家喜欢。

这个游戏类似现在的跑酷,通过上下左右方向键控制。

是不是很酷!很赞!很期待!

python与工业_星球大战与Python之间的那些事相关推荐

  1. python 线性回归模型_如何在Python中建立和训练线性和逻辑回归ML模型

    python 线性回归模型 Linear regression and logistic regression are two of the most popular machine learning ...

  2. python递归函数例题_递归案例python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 而对应的中文翻译 "递归" 却表达了两个意思:"递 ...

  3. load python txt文件_详解Python中numpy.loadtxt()读取txt文件

    为了方便使用和记忆,有时候我们会把 numpy.loadtxt() 缩写成np.loadtxt() ,本篇文章主要讲解用它来读取txt文件. 读取txt文件我们通常使用 numpy 中的 loadtx ...

  4. python len函数_知识清单Python必备的69个函数,你掌握了吗?

    本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...

  5. python求加速度_如何利用Python 为自然语言处理加速度

    自去年发布 Python 的指代消解包(coreference resolution package)之后,很多用户开始用它来构建许多应用程序,而这些应用与我们最初的对话应用完全不同. 利用 spaC ...

  6. python优化网站_[练习] 用PYTHON来优化网站中的图片

    我到公司以来,第一次加班,哇,加一晚上加一上午,现在还没下班的迹象,555,困. 对于网站中的一些关键的页面,多重缓存.静态化.程序代码优化--之外,为了提高用户打开页面的速度,图片是必须要优化的. ...

  7. python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践

    作者:Przemyslaw Piotrowski 首先,熟悉 Oracle-Python 连接性的基本概念 2007 年 9 月发布 参见系列目录 在 Python 做事方式的核心原则中,有一个规定是 ...

  8. python编写函数_如何用Python编写自己喜欢的R函数

    python编写函数 数据科学和机器学习的伟大现代斗争之一是" Python vs. R". 毫无疑问,近年来两者都已经取得了巨大的发展,成为数据科学,预测分析和机器学习的顶级编程 ...

  9. python绝对导入_[编程基础] Python中的绝对导入与相对导入

    如果您从事的Python项目有多个文件,那么您以前可能不得不使用import语句.即使对于拥有多个项目的Python重度使用者(比如我),import也可能会造成混淆!您可能正在阅读本文,因为您想对P ...

最新文章

  1. list mybatis 接收 类型_基于mybatis拦截器实现的一款简易影子表自动切换插件
  2. EDM营销内容撰写要注意的几个方面
  3. python创建列表副本_Python编程15:Python列表的排序和列表的副本
  4. js获取jsp上下文地址
  5. 安卓一个页面设置另一个页面的文本样式_H1标签对于SEO有多重要?页面要不要用H1标签呢?...
  6. python压缩文件_Python压缩及解压文件
  7. android自定义日历代码,Android自定义日历Calender代码实现
  8. Java代码校验银行卡号
  9. linux recv函数 参数,linux send recv函数详解
  10. zmq xsub/xpub 实现消息订阅(一)
  11. 腾讯程序员平均月薪7.48万,分分钟变身“柠檬精”
  12. HDLBits练习——Exams/ece241 2013 q7
  13. 矩阵的生成及对角线运算
  14. JustinMind
  15. 【python】——数据分布拟合工具包fitter
  16. mysql查询补齐12个月_MySQL查询12个月数据,无数据补0
  17. 汽车电子控制-汽油机电子控制QA(1)
  18. numpy.core._exceptions.UFuncTypeError: ufunc ‘add‘ did not contain a loop with signature matching ty
  19. Tether操纵市场了吗?
  20. IPv6下DHCPv6协议(RFC3315)详细介绍

热门文章

  1. libpng error: IDAT: invalid distance too far back解决方案
  2. 拷问你的意志,拷问你的灵魂
  3. Google Chrome浏览器旧版本下载
  4. dat image 微信_微信Dat文件解码
  5. 艾默生:默默消化在7.5亿美元并吞华为之后
  6. 个人读书思维导图笔记之mysql-innodb之索引
  7. c语言怎么判断数组是否为空,PHP 判断数组是否为空的几种方法
  8. 基于STC89c52rc单片机的红外循迹小车
  9. 如何套牢ceRNA研究套路
  10. 购车分期系统-智能风控体系,有效控制贷款风险