我正在用Java编写一个国际象棋游戏,用一个具有2d Square对象数组的Board类进行设置.每个正方形的高度和宽度(介于0和7之间).我将编写一个接收方形对象,垂直偏移和水平偏移的方法.
例如:如果我调用getNearbySquare(mySquare,3,2),它应该返回我的Board中的方形对象,它位于mysquare上方3和mySquare右侧2.
我最初在Square类中将它写为实例方法,它只是采用垂直和水平偏移.问题是,我正在创建然后返回一个新的方形对象,而不是我的Board类中的2d数组中的正确对象.
我看到两个选择:
1)在Square类中创建一个实例方法,该方法接受Board对象,垂直偏移和水平偏移.我将找到调用此方法的方形对象的当前高度和宽度,添加垂直和水平偏移以在所需方块的板中获取新位置,然后使用Board [newHeight] [newWidth]访问它.
2)在Board类中创建一个实例方法做同样的事情,但不要求我传入Board对象,如1).相反,我需要传入方形对象.
在做出这些决定时,是否存在普遍接受的做法?
感谢Mariogs的帮助
我已经编写了一个在终端中可用的python脚本,并使用Flask将其移植到Web上。我已经通过教程的部分消失(具体为:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
)
我在将我使用的Python脚本中使用的所有功能放置在何处感到困难。author()使用此代码获得基本视图:
def index():
user = {'nickname': 'Miguel'} # fake user
posts = [ # fake array of posts
{
'author': {'nickname': 'John'},
'body': 'Beautiful day in Portland!'
},
{
'author': {'nickname': 'Susan'},
'body': 'The Avengers movie was so cool!'
}
]
return render_template("index.html",
title='Home',
user=user,
posts=posts)
Run Code Online (Sandbox Code Playgroud)
问题是我没有一个要调用的函数。我有15个左右,而且好像Flask只允许我为每个视图调用一个函数。所以我不太确定我的“主”函数将要调用的所有辅助函数都放在哪里。
以作者的示例代码为例。如果我有一个getPosts()
返回后对象数组的函数,该放在哪里?
即使允许我将其放置在路由的主要功能下(无论如何我也认为不允许这样做),看来这样做很糟糕。
编辑:
这是我的views.py文件:
1 from flask import Flask
2 app = Flask(__name__)
3 from flask import render_template
4 from app import app
5 from app import helpfulFunctions …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用标准ML编写一个函数,case of
但我最终会得到一些代码,这些代码会为一堆内容而尖叫if / else
.这只是一个不太好的候选人使用case of
或是否有更好的方法来设置它所以我不是经常将布尔值映射到布尔值?
这是我的代码:
fun isLeapYear(y) =
case (y mod 400 = 0) of
true => true |
false => (case ((y mod 100 = 0)) of
true => false |
false => (case (y mod 4 = 0) of
true => true |
false => false));
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助,bclayman
尝试从终端加载方案文件.我创建了一个名为test.scm的代码,其中包含以下代码:
(define (square x) (* x x))
(define (sum-of-squares x y)
(+ (square x) (square y))
)
(define (big-square x y z)
(cond ( (and (< x y) (< x z)) (sum-of-squares y z) )
( (and (< y x) (< y z)) (sum-of-squares x z) )
(else (sum-of-squares x y))
)
)
Run Code Online (Sandbox Code Playgroud)
我跑:
1)方案(一切都在OS X上启动)2)加载'test.scm'
我回来了:
;Value 13: #[compiled-procedure 13 ("load" #x2) #x1a #x1045a82c2]
1 ]=>
;Value: test.scm
Run Code Online (Sandbox Code Playgroud)
3) (sum-of-squares 3 4)
我期待25,但我得到:
;未绑定变量:平方和
知道这里发生了什么吗?当我尝试:
(square 5)
Run Code Online (Sandbox Code Playgroud)
我按预期回来了25 ...
我正在使用 matplotlib 来显示股票价格随时间的变动。我想关注过去 90 天,然后预测接下来的 14 天。我有过去 90 天的数据和我的预测,但我想用不同的颜色绘制我的预测,因此很明显它们是不同的。
我该怎么做?
如果我只是向代码添加第二次plot()
调用,预测将从与 90 天的数据相同的点开始并重叠,这不是我想要的。
现在我正在这样做:
df[-90:]["price"].plot()
plt.show()
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一组常见的电子邮件地址,如下所示:
common_addresses = set(["yahoo.com", "gmail.com", "hotmail.com"])
Run Code Online (Sandbox Code Playgroud)
我有一个Pandas DataFrame,df
看起来像:
id email_domain
1 yahoo.com
2 gmail.com
3 unk.com
4 new.com
Run Code Online (Sandbox Code Playgroud)
我想common_addresses
用"稀有" 替换不在我的电子邮件.这是我的尝试:
mask = df.email_domain not in common_addresses
df.loc[mask, "email_domain"] = "rare"
Run Code Online (Sandbox Code Playgroud)
我在线上收到错误mask = ...
如下:
TypeError: 'Series' objects are mutable, thus they cannot be hashed
Run Code Online (Sandbox Code Playgroud)
我该如何制作这个面具?
谢谢!
我正在使用这样的 Pandas 数据框:
col1 col2 id name
0 1 2 1 harry
1 2 3 1 harry
2 3 4 2 harry
3 4 5 3 harry
4 5 6 4 harry
5 1 9 6 jane
6 2 10 6 jane
7 3 11 7 jane
8 4 12 7 jane
9 5 12 8 jane
Run Code Online (Sandbox Code Playgroud)
我想创建一个新的数据框,其中对于每个name
,我采用具有唯一id
值的前 3 行。
例如,对于harry
,这将是第 0、2 和 3 行。第 1 行被排除在外,因为它与第 0 行具有相同的 id。
我的示例数据帧的正确输出是:
col1 col2 id …
Run Code Online (Sandbox Code Playgroud) 您如何知道如何在以下汇编代码中填写下划线:
mov_ %eax, (%rsp)
Run Code Online (Sandbox Code Playgroud)
字节为"b",字为"w",双字为"l",四字为"q".寄存器的语法应该(我认为)表明移动了多少数据.我查看了我的书,似乎无法确定如何确定.
有一般的方法来解决这个问题吗?
Ullman的书"ML编程元素"介绍了一个简单版本的map函数,定义如下:
fun simpleMap(F, nil) = nil
| simpleMap(F, x::xs) = F(x)::simpleMap(F, xs);
val map = fn : ('a -> 'b) * 'a list -> 'b list
Run Code Online (Sandbox Code Playgroud)
鉴于 - >是正确的关联,你不会像这样括号:
('a -> 'b) * ('a list -> 'b list) ?
Run Code Online (Sandbox Code Playgroud)
但这是不正确的,因为域类型是由函数和列表组成的元组,范围类型只是一个列表.
我哪里错了?
谢谢!
我有一个带有列的 Pandas DataFrame A, B, C, D, date
。我想过滤掉A
and 的重复项B
,保留date
.
所以如果我有两行看起来像:
A B C D date
1 1 2 3 1/1/18
1 1 2 3 1/1/17
Run Code Online (Sandbox Code Playgroud)
正确的输出是:
A B C D date
1 1 2 3 1/1/18
Run Code Online (Sandbox Code Playgroud)
我可以通过循环来做到这一点,但我想使用df.groupby(['A', 'B'])
然后通过获取date
每个组中的最大值进行聚合。
我试过:
df.groupby(['A', 'B']).agg(lambda x: x.iloc[x.date.argmax()])
但我得到:
AttributeError: 'Series' object has no attribute 'date'
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
编辑:嗯,如果我这样做:
df.groupby(['A', 'B']).UPDATED_AT.max()
Run Code Online (Sandbox Code Playgroud)
我得到的大部分都是我想要的,但我失去了专栏D
和C
......