小编Hen*_*nyH的帖子

如何运行.lua脚本?

我需要使用Windows命令行(cmd)执行.lua脚本.我的.lua文件在我的lua.exe所在的文件夹中.

我已经尝试了几种运行文件的方法,但我无法弄清楚如何做到这一点.=(

(我也有扩展名.out的相同脚本)

lua cmd

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

int .__ mul__,执行速度比operator.mul慢2倍

如果你看下面的时间:

C:\Users\Henry>python -m timeit -s "mul = int.__mul__" "reduce(mul,range(10000))"
1000 loops, best of 3: 908 usec per loop

C:\Users\Henry>python -m timeit -s "from operator import mul" "reduce(mul,range(10000))"
1000 loops, best of 3: 410 usec per loop
Run Code Online (Sandbox Code Playgroud)

两者之间的执行速度存在显着差异

reduce(int.__mul__,range(10000))并且reduce(mul,range(10000))后者更快.

使用该dis模块查看发生的情况:

使用int.__mul__方法:

C:\Users\Henry>python
Python 2.7.4 (default, Apr  6 2013, 19:55:15) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> mul = int.__mul__
>>> def test():
...     mul(1,2) …
Run Code Online (Sandbox Code Playgroud)

c python

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

SQLAlchemy要求查询使用别名,但该别名未在生成的SQL中使用

我有一个简单的模型类,代表两个角色之间的战斗:

class WaifuPickBattle(db.Model):
    """Table which represents a where one girl is chosen as a waifu."""

    __tablename__ = "waifu_battles"
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    date = db.Column(db.DateTime, nullable=False)
    winner_name = db.Column(db.String, nullable=False)
    loser_name = db.Column(db.String, nullable=False)
Run Code Online (Sandbox Code Playgroud)

我有一种构造CTE的方法,该CTE将战斗投射为一系列出场(每场战斗都有两次出场-胜利者和失败者):

def get_battle_appearences_cte():
    """Create a sqlalchemy subquery of the battle appearences."""
    wins = select([
        WaifuPickBattle.date,
        WaifuPickBattle.winner_name.label("name"),
        expression.literal_column("1").label("was_winner"),
        expression.literal_column("0").label("was_loser")
    ])
    losses = select([
        WaifuPickBattle.date,
        WaifuPickBattle.loser_name.label("name"),
        expression.literal_column("0").label("was_winner"),
        expression.literal_column("1").label("was_loser")
    ])
    return wins.union_all(losses).cte("battle_appearence")
Run Code Online (Sandbox Code Playgroud)

然后,我有了一个查询,该查询利用此视图来确定战斗最多的角色:

def query_most_battled_waifus():
    """Find the waifus with the most battles in a …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

选择/选择2 jQuery插件不能与IE10一起使用

以下代码使用ASP.NET MVC 4在Firefox和Chrome上正常运行(页面加载时没有错误,下拉列表正确显示/响应),但IE10会在页面加载时抛出以下内容:

> 0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法"已选择"

这是SELECT html标记:

<select class="chzn-select" data-placeholder="Group" name="Group">
    @foreach(var group in @Model.Groups)
    {
      <option value="@group">@group</option>
    }
</select>
Run Code Online (Sandbox Code Playgroud)

它下面的JavaScript:

 <script type="text/javascript">
    $(function () {
        $(".chzn-select").chosen();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我已将selected.css和选择的.*.js文件添加到相应的样式和脚本包中,然后将其包含在我的母版页中.

(页面请求中的开发工具屏幕) 在此输入图像描述

此外,我尝试使用select2,它在IE中遇到了同样的错误,其他浏览器工作正常.(我更新了包以包含对.css和.js的引用)我改变的代码是:

<select class="GroupDropdown" name="Group">
      @foreach(var group in @Model.Groups)
      {
         <option value="@group">@group</option>
      }
 </select>
 <script type="text/javascript">
      $(function () {
           $(".GroupDropdown").select2();
      });
 </script>
Run Code Online (Sandbox Code Playgroud)

以下适用于所有浏览器(文件位于root并正确命名)

<!DOCTYPE html>
<html>
<head>
    <title>Dropdown Test</title>
    <script src="jquery.js" type="text/javascript"></script>
    <script src="select2.js" type="text/javascript"></script>
    <link href="select2.css" rel="stylesheet" />
</head>
<body>
    <select>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option> …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jquery jquery-plugins internet-explorer-10

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

Lua""== true等于""== false

我无法理解表达式""==true""==false两者的评价方式false.

在lua解释器和ilua中尝试以下结果会产生相同的输出:

> =""==true
false
> =""==false
false
Run Code Online (Sandbox Code Playgroud)

或者执行以下操作:

print(""==true)
print(""==false)
print(""==nil)
Run Code Online (Sandbox Code Playgroud)

输出

Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
false
false
false
> 
Run Code Online (Sandbox Code Playgroud)

另一个例子:

> =""~=true
true
> =""==false
false
Run Code Online (Sandbox Code Playgroud)

运行以下代码时:

if "" then -- if ""==true
    print "was true"
end 

if not "" then -- if ""==false
    print "was not true"
end 
Run Code Online (Sandbox Code Playgroud)

输出是(看似不一致)

Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
was true
> 
Run Code Online (Sandbox Code Playgroud)

正如预期的Lua FAQ所述

类C语言将0视为等同于false,但对于Lua而言则不然.只有明确的false或nil等同于false.如果有疑问,请明确条件,例如,如果val == nil则... end,除非该值实际上是布尔值.

价值如何等于 …

lua

7
推荐指数
2
解决办法
2万
查看次数

Lua Metatable不一致

我无法理解为什么__index这些示例之间的元方法行为存在差异:

A = { __index = A }   
function A:speak()
    print("I'm an A")
end
An_A = setmetatable({},A)
An_A:speak()
Run Code Online (Sandbox Code Playgroud)

会引发以下错误: lua: l.lua:8: attempt to call method 'speak' (a nil value)

同时

B = { __index = function(t,key)  return B[key] end }
function B:speak()
    print("I'm an B")
end
An_B = setmetatable({},B)
An_B:speak()
Run Code Online (Sandbox Code Playgroud)

将按预期执行,输出I'm an B.


在试图理解为什么会这样的情况下,我阅读了PiL的这一部分.它指出:

使用__index元方法进行继承是如此常见,以至于Lua提供了一种快捷方式.尽管有名称,但__index元方法不需要是一个函数:它可以是一个表,而不是.当它是一个函数时,Lua用表和缺席键作为参数来调用它.当它是一个表时,Lua重做该表中的访问权限.

我对此的理解是,在涉及"A"的代码段中,__index = A导致访问在表中完成A(根据上面引用的加速分段).如果是这种情况,我不明白为什么"speak"找不到与密钥相关的功能.为了尝试修复此问题,我决定在B代码段中实现函数方法,该方法返回与keyin 关联的值B,并且它有效.当然__index = …

lua metatable lua-table

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

Python打印出浮点数或整数

如果结果有小数,我如何打印出浮点数或如果结果没有小数则打印出整数?

c = input("Enter the total cost of purchase: ")
bank = raw_input("Enter the bank of your credit card (DBS, OCBC, etc.): ")
dbs1 = ((c/float(100))*10)
dbs2 = c-dbs1
ocbc1 = ((c/float(100))*15)
ocbc2 = c-ocbc1


if (c > 200):
    if (bank == 'DBS'):
        print('Please pay $'+str(dbs2))
    elif (bank == 'OCBC'):
        print('Please pay $'+str(ocbc2))
    else:
        print('Please pay $'+str(c))
else:
    print('Please pay $'+str(c))

exit = raw_input("Enter to exit")
Run Code Online (Sandbox Code Playgroud)

例如,结果

Enter the total cost of purchase: 250
Enter the bank of your credit …
Run Code Online (Sandbox Code Playgroud)

python if-statement coding-style string-formatting

3
推荐指数
3
解决办法
9167
查看次数

Python 030 == 24是真的,这是怎么回事?

我遇到了以下问题:

正如您所料:

>>> [01,02,03]
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

将superflous添加0到整数的前面会导致整数N的数学等价0N,即N.

但是,当我这样做时:

>>> [030, 031, 031, 031, 030, 031, 031, 032, 031, 032]
[24, 25, 25, 25, 24, 25, 25, 26, 25, 26]
Run Code Online (Sandbox Code Playgroud)

事实证明这一观点完全不正确.我试图通过尝试检查是否030为int 来弄清楚为什么会这样:

>>> type(030)
<type 'int'>
Run Code Online (Sandbox Code Playgroud)

然后我想也许,030正在评估24,然后它反而得到type(24).所以我想看看发生了什么dis可能会有所帮助:

>>> dis.dis('n=030')
          0 JUMP_FORWARD    12349 (to 12352)
          3 DELETE_SLICE+1 
          4 <48>           
>>> dis.dis('n=30')
          0 JUMP_FORWARD    13117 (to 13120)
          3 <48>    
Run Code Online (Sandbox Code Playgroud)

这无助于澄清为什么会出现这种情况.那么,这种行为背后的共鸣是什么?

根据标题:

>>> …
Run Code Online (Sandbox Code Playgroud)

python

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