小编sam*_*rap的帖子

不使用reverse()或[:: - 1]反转字符串?

我遇到了一个奇怪的Codecademy练习,它需要一个函数,它将一个字符串作为输入并以相反的顺序返回它.唯一的问题是你无法在stackoverflow上使用反向方法或常见答案[::-1].

显然在编程的现实世界中,人们很可能会使用扩展切片方法,甚至使用reversed函数,但也许有些情况下这不起作用?

我在Q&A风格中提出了以下解决方案,以防将来对人们有所帮助.

python string reverse for-loop function

39
推荐指数
6
解决办法
16万
查看次数

Python:过滤器(函数,序列)和映射(函数,序列)之间的区别

我正在阅读Python文档,以深入了解Python语言并遇到过滤器和地图功能.我之前使用过滤器,但从未映射过,虽然我已经在SO上看到了各种Python问题.

在Python教程中阅读了它们之后,我对两者之间的区别感到困惑.例如,从5.1.3开始.功能编程工具:

>>> def f(x): return x % 2 != 0 and x % 3 != 0
...
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]
Run Code Online (Sandbox Code Playgroud)

>>> def cube(x): return x*x*x
...
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
Run Code Online (Sandbox Code Playgroud)

这些看起来与我的功能几乎完全相同,所以我进入终端以交互方式运行Python并测试了我自己的情况.我用于map上面的第一个和第二个实例,并且对于第一个实例(return x % 2 != 0 and x % 3 != 0)它返回了一个布尔值而不是数字列表.

为什么map有时会返回布尔值,有时会返回实际返回值?

有人可以向我解释一下map和之间的区别filter吗?

python functional-programming filterfunction map-function

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

如何获得相对于父div的鼠标坐标?使用Javascript

我目前有一个div与其中的其他元素结构.

类似于下面的东西;

<div id="container" style="position: relative; width: 500px; height: 500px;">
     <div style="position: absolute; left: 50px; top: 50px;"></div>
     <div style="position: absolute; left: 100px; top: 100px;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我试图获取相对于div的div的鼠标位置container.

到目前为止,我有这个;

function onMousemove(event) {

    x = event.offsetX;
    y = event.offsetY;
};

var elem = document.getElementById("container");
elem.addEventListener("mousemove", onMousemove, false);
Run Code Online (Sandbox Code Playgroud)

如果带有id的div container没有子节点,这可以正常工作.当containerdiv有子节点时,它会获得相对于孩子而不是父节点的鼠标坐标.

我的意思是,如果鼠标位于x: 51, y: 51相对于父div 的位置,它实际上将x: 1, y: 1使用上面给出的html相对于子div 返回.

我怎样才能实现我想要的,请不要图书馆.

编辑

tymeJV善意地说明了上面发生的事情.

http://jsfiddle.net/N6PJu/1

javascript events mousemove

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

PHPUnit模拟功能?

我有一个有趣的场景,我需要定义一个函数,以便为另一个函数进行测试.我想测试的功能看起来像这样:

if (function_exists('foo') && ! function_exists('baz')) {
    /**
     * Baz function
     * 
     * @param integer $n
     * @return integer
     */
    function baz($n)
    {
        return foo() + $n;
    }
}
Run Code Online (Sandbox Code Playgroud)

我检查是否存在的foo原因是因为它可能在开发人员的项目中定义,也可能没有定义,并且该函数baz依赖于该函数foo.因此,我只想baz定义它是否可以调用foo.

唯一的问题是到目前为止,无法编写测试.我尝试在PHPUnit配置中创建一个引导脚本,该脚本将定义一个假foo函数,然后需要Composer自动加载器,但我的主脚本仍然认为foo没有定义.foo不是Composer包,我的项目不能要求.显然,Mockery也不适用于此.我的问题是,如果有更多有经验的PHPUnit遇到过这个问题并找到了解决方案.

谢谢!

php phpunit unit-testing mocking

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

为什么可以从字符串变量实例化一个类,而不是PHP中的字符串?

PHP如何工作:

$myClass = 'App\MyClass';
$object = new $myClass;
Run Code Online (Sandbox Code Playgroud)

但这会导致错误:

$myClass = 'MyClass';
$object = new 'App\\'.$myClass;
Run Code Online (Sandbox Code Playgroud)

在第二个例子中,unexpected T_CONSTANT_ENCAPSED_STRING抛出了一个.

事实证明,上面的例子是由于运算符优先级,因为new它具有最高优先级,但......

同样,我可以尝试使用一个字符串进行实例化,如:

$object = new 'App\MyClass';
Run Code Online (Sandbox Code Playgroud)

并抛出同样的错误.为什么是这样?

php

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

Laravel 5.6护照api身份验证无法获取请求

我在做单页的应用程序,并在处理GET请求,我已经通过了X-CSRF-TOKENX-Requested-Withheaders.I还包括 \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class在网络中间件组.我在api.php中的路线看起来像

Route::get('categories','Api\Categories@index')->middleware('auth:api');
Run Code Online (Sandbox Code Playgroud)

但请求指定的URL显示未经身份验证的消息.

php api laravel

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

C基础知识 - 变量和指针存在问题

我在学习C方面遇到了一些问题,而且我真的没有其他地方可以提出建议.我来自一系列OOP语言,例如JavaScript和主要是Python,因此C是一个重大变化,我在尝试学习基础知识方面遇到了一些障碍.我最初是从Zed Shaw的"艰难学习C"开始的,但他并没有在书中教授任何东西.是的,他让你写了很多代码并改变了一些东西,但是我不知道为什么代码会工作,而这只会导致更复杂的例子.

我遇到的主要问题是变量和指针之间的区别(我认为它是非常独特的,直到我看到一些我将在下面发布的例子,这完全模糊了两者之间的界限).

例如,我理解声明和初始化一个int被调用的a和一个指针,p看起来像这样:

int a;
int *p;

a = 12;
p = &a;
Run Code Online (Sandbox Code Playgroud)

令我困惑的是当你声明看起来像指针的变量,但根本不是指针(或者它们是什么?).例如:

char *string = "This is a string";
printf("%s\n", string);
Run Code Online (Sandbox Code Playgroud)

什么string时候定义和初始化?它是指针吗?如果是的话,为什么不在printf函数中打印它时取消引用它?有很多像这样的例子让我很困惑.

我遇到的另一个例子没有任何意义:

int i;
scanf("%d", &i);
Run Code Online (Sandbox Code Playgroud)

i当&符号应该引用变量的内存中的位置而不是值时,这个函数如何更新整数的值?阵列和结构变得更加复杂,这是我停下来的地方,我决定要找一些建议.


老实说,我觉得很尴尬发布这样一个菜鸟问题,但每个人都从某个地方开始.这些基础知识是我知道在继续之前需要能够理解的东西,但是当我看到与我刚刚学到的内容相矛盾的代码示例时,我很难理解它.我知道这是一个非常普遍的问题,但我希望你们中的一些人能够解释这些基础知识,或者指出我可以更好地学习/理解这一点的方向.我遇到的大多数视频教程都过于笼统,与在线文本教程相同,他们告诉你如何做某事,但不解释它,这会导致一些严重的问题.

c pointers

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

Laravel 5覆盖路由资源参数

我在资源控制器后面使用了一些网络路由。因此,路线看起来就像:

Route::resource('account', 'AccountController');
Run Code Online (Sandbox Code Playgroud)

我还有一个Web中间件,用于检查对象中user_id是否设置了参数Request

if ($request->user_id) {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

问题是这样的。在我的非资源路线中,我使用类似以下内容的方法:

Route::get('agentnotes/{user_id}', 'UserNoteController@getUserNotes');
Run Code Online (Sandbox Code Playgroud)

这将user_id变量设置为预期的,并且中间件功能正常。

但是在资源路由中,即使实际的路由方法使用user_id,中间件也看不到它。因此,例如,该AccountController::show方法如下所示:

public function show($user_id)
Run Code Online (Sandbox Code Playgroud)

但是user_id我认为中间件不会将其视为请求的一部分,因为它在请求到达控制器之前已经被触发。

有没有一种方法可以在不重写所有资源路由的情况下进行处理?

php routing laravel laravel-5.5

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