所以我在运行导入的脚本时遇到以下错误web.
$ python bin/app.py
Traceback (most recent call last):
File "bin/app.py", line 1, in <module>
import web
ImportError: No module named web
Run Code Online (Sandbox Code Playgroud)
我尝试使用easy_install web但得到此错误:
$ easy_install web
Searching for web
Reading http://pypi.python.org/simple/web/
Reading http://www.pythonweb.org/web/
Reading http://www.pythonweb.org/web/release/
No local packages or download links found for web
error: Could not find suitable distribution for Requirement.parse('web')
Run Code Online (Sandbox Code Playgroud)
我试过pip install web但得到以下内容:
$ pip install web
Downloading/unpacking web
Could not find any downloads that satisfy the requirement web
No distributions …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据learnpythonthehardway教程安装以下内容:
我访问了这些链接并点击了下载按钮; 现在每个文件都在我的下载文件夹中,我解压缩/解压缩它们 - 不确定这意味着什么,但它似乎是必需的.他们"安装"了吗?如果没有,真正安装它们意味着什么?我已经尝试nosetests在终端上打字(正如书中所说的那样),并尝试过,easy_install但这似乎不起作用.看来我的理解在很多方面受到限制.
我得到以下-bash: nosetests: command not found,但我想得到:
nosetests . ---------------------------------------------------------------------- Ran 1 test in 0.007s
OK
我已经完成了一些阅读,并且无法像我想的那样完全掌握这一点.我正在从LPTHW教程中做一些"选择你自己的冒险"游戏,这里是完整的脚本:http://codepad.org/YWVUlHnU
我不明白的是以下内容:
class Game(object):
def __init__(self, start):
self.quips = [
"You died. Please try again.",
"You lost, better luck next time.",
"Things didn't work out well. You'll need to start over."
"You might need to improve your skills. Try again."
]
self.start = start
Run Code Online (Sandbox Code Playgroud)
我知道我们正在创建一个类,但为什么要定义__init__?后来我做了类似print self.quis[randint(0, len(self.quips)-1)]打印四个字符串中的一个的东西quips,但为什么我不会创建一个叫做的函数quips呢?
我正在尝试打印这个类中的函数创建的列表 - 我需要修复什么?我从终端获得输出[<__main__.Person instance at 0x1004a0320>,.
class Person:
def __init__(self,first,last,id,email):
self.firstName=first
self.lastName=last
self.id=id
self.email=email
self.friends=[]
def add_friend(self,friend):
if len(self.friends)<5:
self.friends.append(friend)
if len(friend.friends)<5:
friend.friends.append(self)
p1=Person("David","Waver","922-43-9873","dwaver@wsu.edu")
p2=Person("Bob","Jones","902-38-9973","bjones@odu.edu")
p3=Person("James","Smith","302-38-9103","jonsdfes@ou.edu")
p4=Person("Tim","Jack","902-38-0918","remmy@usc.edu")
p5=Person("Jim","Johnston","314-78-2343","jjohnston@fsu.edu")
p6=Person("Gina","Relent","102-38-1064","ginar@wvu.edu")
p7=Person("Greg","Morris","932-38-4473","jones@ttu.edu")
p1.add_friend(p2)
p1.add_friend(p3)
p1.add_friend(p4)
p1.add_friend(p5)
p1.add_friend(p6)
p1.add_friend(p7)
print p1.friends
Run Code Online (Sandbox Code Playgroud) 第二行的目的是什么?我们不是必须传入一个列表作为我们的seed参数吗?我认为你可以在我们拥有tocrawl变量的所有区域中使用种子,而不是在列表中有一个列表.
def crawl_web(seed):
tocrawl = [seed]
crawled = []
while tocrawl:
page = tocrawl.pop()
if page not in crawled:
union(tocrawl, get_all_links(get_page(page)))
crawled.append(page)
return crawled
Run Code Online (Sandbox Code Playgroud)
编辑:完整的脚本 - http://codepad.org/qxuzVkof
所以我正在学习课程.为什么我不能使用第三个代码块来执行与第二个代码块明显相同的操作?为什么我必须分配p1,person()而不是仅仅person()按照我在第三个代码块中的方式使用?
#class
class person:
def asdf(self):
self.firstname=""
self.lastname=""
self.id=""
self.email=""
self.friends=[]
#second block of code
p1 = person()
p1.firstname="Dave"
p1.lastname="Johnson"
p1.id="2345239"
p1.email="dave@gmail.com"
print p1.firstname
#third block of code
person().firstname="Dave"
person().lastname="Johnson"
person().id="2345239"
person().email="dave@gmail.com"
print person().firstname
Run Code Online (Sandbox Code Playgroud)