小编Cha*_*son的帖子

初学者Python:AttributeError:'list'对象没有属性

错误说:

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)

首先,我不知道为什么它指的是列表,一切似乎都被定义了,不是吗?

python dictionary class list attributeerror

17
推荐指数
3
解决办法
15万
查看次数

在移动光标之前,jQuery函数不响应".click"?

我有一个简单的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过程的简单缺乏理解.可能与缺乏"准备好"有关?

我已经尝试过点击并等待几分钟,直到我移动光标才会发生任何事情.

网站:

http://watsoncn.info

html javascript css jquery function

7
推荐指数
1
解决办法
147
查看次数

Python:如何从字典键中随机选择一个值?

我有一本字典:

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)

或随机选择的任何值.

正在创建不必要的列表?我会继续发布尝试.

只是为了澄清为什么这不是重复:我不想从字典中随机抓取一个项目,我想从字典中的每个列表中随机抓取一个项目.

python random dictionary list key-value

4
推荐指数
1
解决办法
1万
查看次数

Python:Scrapy start_urls列表能够处理.format()?

我想解析一个股票列表,所以我试图格式化我的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打印输出中打印出来,但是当前不包含它,这意味着它没有正确格式化 …

python function web-crawler while-loop scrapy

2
推荐指数
1
解决办法
425
查看次数

Python:如何将两个for语句合二为一?

我正在尝试解析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)

python csv parsing export scrapy

2
推荐指数
1
解决办法
47
查看次数

"string.match()"不是函数?

我写了一个函数来计算单词中的长度和元音,并将它们输出到数组中的对象中.然而我得到错误"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)

知道什么是错的吗?

javascript regex for-loop function object

1
推荐指数
1
解决办法
3759
查看次数

Python:错误=类'Foo'没有'bar'成员?

我收到一个错误:

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)

python printing format variables class

0
推荐指数
1
解决办法
40
查看次数

涉及从字符串中平均字长的函数?

这是我第一次接触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)

javascript for-loop average function

0
推荐指数
1
解决办法
1678
查看次数

如何使<hr>扩展到有序列表编号下面?

我有一个用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)

但是,数字占用的区域(装饰器?)会阻止水平规则扩展.

示例问题 检查元素

有什么方法可以解决这个问题吗?

html css angularjs

0
推荐指数
1
解决办法
44
查看次数

“仅协议方案支持跨源请求:http,数据,chrome,chrome扩展名,https,chrome-extension-resource。”

我正在从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”

node.js cors angularjs

0
推荐指数
1
解决办法
4706
查看次数