星球大战与Python之间的那些事

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开发的星战相关游戏,希望大家喜欢。

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

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

(0)

相关推荐

  • python正则匹配抓取豆瓣电影链接和评论代码分享

    复制代码 代码如下: import urllib.requestimport reimport time def movie(movieTag): tagUrl=urllib.request.urlopen(url)    tagUrl_read = tagUrl.read().decode('utf-8')    return tagUrl_read def subject(tagUrl_read): '''         这里还存在问题:        ①这只针对单独的一页进行排序,而没有

  • python实现去除下载电影和电视剧文件名中的多余字符的方法

    本文实例讲述了python实现去除下载电影和电视剧文件名中的多余字符的方法,是一个非常实用的技巧,分享给大家供大家参考.具体如下: 有时候我们讨厌下载电影和电视剧文件名中的多余字符(如网址和广告字样),搞得文件名好长!不便于查看,这时候就可以使用下面的Python代码,自行修改即可. 具体实现代码如下: #!\usr\bin\env python # -*- coding: utf-8 -*- # Author: 吴徐平 # FileName: RefineFileName.py # Funct

  • python实现根据用户输入从电影网站获取影片信息的方法

    本文实例讲述了python实现根据用户输入从电影网站获取影片信息的方法.分享给大家供大家参考.具体如下: 这段python代码主要演示了用户终端输入,正则表达式,网页抓取等 #!/usr/bin/env python27 #Importing the modules from BeautifulSoup import BeautifulSoup import sys import urllib2 import re import json #Ask for movie title title =

  • python获取豆瓣电影简介代码分享

    复制代码 代码如下: #!/usr/bin/env python#coding:utf-8import re,sysimport urllibfrom bs4 import BeautifulSoupglobal r_url def hq_url():    so_url = "http://movie.douban.com/subject_search?search_text="    data = urllib.urlopen(so_url+gjz).read()    r = r

  • 星球大战与Python之间的那些事

    Python与星球大战背后的工业光魔 提起Python语言,很多人会想起系统运维.Web开发等工作.很少有人会知道Python也能够用于电影视觉特效的制作,其中就包括了<星球大战>某些电影特效的制作. 星战之父乔治·卢卡斯于1975年创建了工业光魔(全称:Industrial Light and Magic),从第一部<星球大战>起便参与了电影的特效制作.据Python官网介绍,工业光魔从1996年起开始使用Python语言,取代了此前的Unix shell脚本.工业光魔做出这个决

  • Java与Python之间使用jython工具类实现数据交互

    最近有个功能需要java与python之间的数据交互,java需要把参数传给python,然后python计算的结果返回给java.于是就写了一个工具类. 首先,maven 需要加载jython的依赖.工具类代码如下: import java.util.List; import java.util.Map; import java.util.Properties; import org.apache.poi.ss.formula.functions.T; import org.python.co

  • Node.js 和 Python之间该选择哪个?

    最近,Node.js 和 Python 都因其广泛的特性和功能在市场上大受欢迎.在你开发Web应用程序的后端时,这两种技术都是你的首选. 众所周知,每个项目都有其自己的规范和需求,因此,选择一个合适的编程语言进行开发势在必行.在本文中,我们将会详细讨论这两种技术,列出其优缺点,并得出结论,希望能为你在项目选择哪种技术时提供一些帮助. 在开始对比这两种技术之前,让我们先来简单了解一下Node.js和Python的基础知识. 什么是Node.js? 用一种简单易懂的语言来说,Node.js是一个服务

  • Perl 与 Python 之间的一些异同整理

    关于 Perl 与 Python 的起源和特点 Perl 是 Practical Extraction and Report Language 的简称,由 1987 年 Larry Wall 创建,最初的目的是为了在 UNIX 上方便处理报表,经过长期的发展已经成为一种全功能的程序设计语言,当前最新的版本为 Perl5.14.1,Perl 作为一种自由而强大的编程语言,其中心思想是: There's More Than One Way To Do It.(不只一种方法來做这件事 ),即「 Tim

  • 零基础写python爬虫之抓取糗事百科代码分享

    项目内容: 用Python写的糗事百科的网络爬虫. 使用方法: 新建一个Bug.py文件,然后将代码复制到里面后,双击运行. 程序功能: 在命令提示行中浏览糗事百科. 原理解释: 首先,先浏览一下糗事百科的主页:http://www.qiushibaike.com/hot/page/1 可以看出来,链接中page/后面的数字就是对应的页码,记住这一点为以后的编写做准备. 然后,右击查看页面源码: 观察发现,每一个段子都用div标记,其中class必为content,title是发帖时间,我们只需

  • 玩转python爬虫之爬取糗事百科段子

    大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 本篇目标 抓取糗事百科热门段子 过滤带有图片的段子 实现每按一次回车显示一个段子的发布时间,发布人,段子内容,点赞数. 糗事百科是不需要登录的,所以也没必要用到Cookie,另外糗事百科有的段子是附图的,我们把图抓下来图片不便于显示,那么我们就尝试过滤掉有图

  • Python爬虫爬取糗事百科段子实例分享

    大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 本篇目标 1.抓取糗事百科热门段子: 2.过滤带有图片的段子: 3.实现每按一次回车显示一个段子的发布时间,发布人,段子内容,点赞数. 糗事百科是不需要登录的,所以也没必要用到Cookie,另外糗事百科有的段子是附图的,我们把图抓下来图片不便于显示,那么我们

  • R vs. Python 数据分析中谁与争锋?

    当我们想要选择一种编程语言进行数据分析时,相信大多数人都会想到R和Python--但是从这两个非常强大.灵活的数据分析语言中二选一是非常困难的. 我承认我还没能从这两个数据科学家喜爱的语言中选出更好的那一个.因此,为了使事情变得有趣,本文将介绍一些关于这两种语言的详细信息,并将决策权留给读者.值得一提的是,有多种途径可以了解这两种语言各自的优缺点.然而在我看来,这两种语言之间其实有很强的关联. Stack Overflow趋势对比 上图显示了自从2008年(Stack Overflow 成立)以

  • Python工程师面试必备25条知识点

    Python工程师面试必备25条Python知识点: 1.到底什么是Python?你可以在回答中与其他技术进行对比 下面是一些关键点: Python是一种解释型语言.这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译.其他解释型语言还包括PHP和Ruby. Python是动态类型语言,指的是你在声明变量时,不需要说明变量的类型.你可以直接编写类似x=111和x="I'm a string"这样的代码,程序不会报错. Python非常适合面向对象的编程(OOP),

  • 详解Python之数据序列化(json、pickle、shelve)

    一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Python也是一样.很多时候我们会有这样的需求: 把内存中的各种数据类型的数据通过网络传送给其它机器或客户端: 把内存中的各种数据类型的数据保存到本地磁盘持久化: 2.数据格式 如果要将一个系统内的数据通过网络传输给其它系统或客户端,我们通常都需要先把这些数据转化为字符串或字节串,而且需要规定一种统一的数据格式才能让数据接收端正确解析并理解这些数据的含义.XML 是早期被

随机推荐