错误说:
AttributeError: 'list' object has no attribute 'cost'
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下类来处理自行车字典的简单利润计算:
class Bike(object):
def __init__(self, name, weight, cost):
self.name = name
self.weight = weight
self.cost = cost
bikes = {
# Bike designed for children"
"Trike": ["Trike", 20, 100],
# Bike designed for everyone"
"Kruzer": ["Kruzer", 50, 165]
}
Run Code Online (Sandbox Code Playgroud)
当我尝试用my语句计算利润时,我得到属性错误.
# Markup of 20% on all sales
margin = .2
# Revenue minus cost after sale
for bike in bikes.values():
profit = bike.cost * margin
Run Code Online (Sandbox Code Playgroud)
首先,我不知道为什么它指的是列表,一切似乎都被定义了,不是吗?
我有一个简单的CSS样式切换器的网站.我使用以下代码处理单击两个主题按钮的功能,启动从暗到亮的切换,反之亦然:
<script>
$(function() {
$(".light").click(function(){
$("link").attr("href", "css/lightHome.css");
$(".light").attr("disabled", "disabled");
$(".dark").removeAttr("disabled", "disabled")
})
$(".dark").click(function(){
$("link").attr("href", "css/home.css");
$(".dark").attr("disabled", "disabled");
$(".light").removeAttr("disabled", "disabled")
})
});
</script>
Run Code Online (Sandbox Code Playgroud)
关于它的一切都完全按照我的要求运行,除了当我点击按钮时没有任何反应.但第二个我点击后移动光标位置,然后切换发生.我没有最好的jQuery掌握,所以我希望它是对DOM过程的简单缺乏理解.可能与缺乏"准备好"有关?
我已经尝试过点击并等待几分钟,直到我移动光标才会发生任何事情.
网站:
我有一本字典:
dict = {
"Apple": ["Green", "Healthy", "Sweet"],
"Banana": ["Yellow", "Squishy", "Bland"],
"Steak": ["Red", "Protein", "Savory"]
}
Run Code Online (Sandbox Code Playgroud)
我想从每个键打印一个随机值,所以我试着先把它们放到一个列表中:
import random
food = [dict.value.random.choice()]
Run Code Online (Sandbox Code Playgroud)
但这不起作用(毫不奇怪,它看起来过分和令人困惑)
然后我想要print食物:
print food
Run Code Online (Sandbox Code Playgroud)
并看到:
green
squishy
savory
Run Code Online (Sandbox Code Playgroud)
或随机选择的任何值.
正在创建不必要的列表?我会继续发布尝试.
只是为了澄清为什么这不是重复:我不想从字典中随机抓取一个项目,我想从字典中的每个列表中随机抓取一个项目.
我想解析一个股票列表,所以我试图格式化我的start_urls列表的结尾,所以我可以添加符号而不是整个网址.
start_urls内部蜘蛛类stock_list方法:
class MySpider(BaseSpider):
symbols = ["SCMP"]
name = "dozen"
allowed_domains = ["yahoo.com"]
def stock_list(stock):
start_urls = []
for symb in symbols:
start_urls.append("http://finance.yahoo.com/q/is?s={}&annual".format(symb))
return start_urls
def parse(self, response):
hxs = HtmlXPathSelector(response)
revenue = hxs.select('//td[@align="right"]')
items = []
for rev in revenue:
item = DozenItem()
item["Revenue"] = rev.xpath("./strong/text()").extract()
items.append(item)
return items[0:3]
Run Code Online (Sandbox Code Playgroud)
如果我摆脱它stock_list并且只是start_urls像往常一样简单地运行它,但是因为它当前不会导出多于空文件.
另外,我应该尝试一下sys.arv设置,以便在运行时只需在命令行输入股票代码作为参数$ scrapy crawl dozen -o items.csv???
通常,shell会2015-04-25 14:50:57-0400 [dozen] DEBUG: Crawled (200) <GET http://finance.yahoo.com/q/is?s=SCMP+Income+Statement&annual>在LOG/DEBUG打印输出中打印出来,但是当前不包含它,这意味着它没有正确格式化 …
我正在尝试解析Web表并将某些数据导出到csv文件中.
我不知道要形成两个XPath,然后是一个for-statement(或者两个是正确的?).
当前蜘蛛:
class MySpider(BaseSpider):
symbols = ["SCMP"]
name = "dozen"
allowed_domains = ["yahoo.com"]
start_urls = ["http://finance.yahoo.com/q/is?s=SCMP&annual"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
revenue = response.xpath('//td[@align="right"]/strong/text()')
date = response.xpath('//tr[@class="yfnc_modtitle1"]/th/text()')
items = []
for rev in revenue:
item = DozenItem()
item["Revenue"] = rev.re('\d*,\d*')
items.append(item)
return items[:3]
days = []
for day in dates:
item = DozenItem()
item["Date"] = day.re('\d*')
days.append(item)
return items[:3]
Run Code Online (Sandbox Code Playgroud)
我知道这需要工作,我只是不确定要走哪个方向......?
这是输出:

可见,我无法填写日期.
这是我正在解析日期的html:
<TR class="yfnc_modtitle1" style="border-top:none;">
<th scope="col" style="border-top:2px solid #000;text-align:right; font-weight:bold">Dec 31, 2014</th>
<th scope="col" style="border-top:2px solid …Run Code Online (Sandbox Code Playgroud) 我写了一个函数来计算单词中的长度和元音,并将它们输出到数组中的对象中.然而我得到错误"word.match()不是一个函数",其中word是一个字符串.
function wordData(string){
var stringSplit = string.split(' ');
var output = [];
for(var i = 0; i <= stringSplit.length; i++){
var eachWord = stringSplit[i];
var vowel = eachWord.match(/[aeiou]/gi);
var vowelCount = vowel ? vowel.length : 0;
var objectData = {};
objectData.word = eachWord;
objectData.length = eachWord.length;
objectData.vowels = vowelCount;
output.push(objectData);
}
return output;
}
console.log(wordData('some really awesome string'));
Run Code Online (Sandbox Code Playgroud)
知道什么是错的吗?
我收到一个错误:
AttributeError:类型对象'Shop'没有属性'inventory'
我的班级设定:
class Shop(object):
def __init__(self, name, inventory, margin, profit):
self.name = name
self.inventory = inventory
self.margin = margin
self.profit = profit
# Initial inventory including 2 of each 6 models available
inventory = 12
# Markup of 20% on all sales
margin = .2
# Revenue minus cost after sale
for bike in bikes.values():
profit = bike.cost * margin
Run Code Online (Sandbox Code Playgroud)
我想打印库存:
print "Mike's Bikes has {} bikes in stock.".format(Shop.inventory)
Run Code Online (Sandbox Code Playgroud)
但一直得到同样的错误.我可以使用它:
print "Mike's Bikes has %d bikes in stock." % …Run Code Online (Sandbox Code Playgroud) 这是我第一次接触JavaScript,我正在编写一个输出以下内容的函数:
到目前为止,我已经完成了所有方面,除非我在平均过程中苦苦挣扎.
我的代码:
var superCounter = function(x) {
var charCount = x.length;
var wordCount = x.split(" ").length;
var whiteSpace = wordCount - 1;
var wordArray = [x.split(" ")];
var wordAvg = 0;
for (var i = 0; i < wordCount.length; i++){
wordAvg += wordArray[i];
}
var avgLen = wordAvg / wordCount;
console.log(("Words: " + wordArray[0]), "Character count: " + charCount, "Word count: " + wordCount, "Whitespace count: " + whiteSpace, "Word length average: " + …Run Code Online (Sandbox Code Playgroud) 我有一个用ng-repeat创建的列表,在每个列表项下我有一个水平规则.
<ol>
<li ng-repeat="item in items track by $index" ng-dblclick="deleteItem(item)">
{{item}}
<hr>
</li>
</ol>
Run Code Online (Sandbox Code Playgroud)
但是,数字占用的区域(装饰器?)会阻止水平规则扩展.
有什么方法可以解决这个问题吗?
我正在从localhost:8000提供Angular应用程序,并从localhost:3000提供节点后端。我有一个$ http.get在页面加载和前端日志上运行
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
上面有多个SO帖子,但是它们都说“不要直接在浏览器中打开文件”,我将全部服务于他们,而不是打开它们。
我的后端已配置为使用CORS,并且在通过邮递员访问它们时,路由有效。
前端:
后端:
错误:
该host + '/'仅仅是一个常数,引用“本地主机:3000”