小编boi*_*ert的帖子

以线性时间获得列表中的第二大数字

我正在学习Python,并且处理列表的简单方法是一种优势.有时它是,但看看这个:

>>> numbers = [20,67,3,2.6,7,74,2.8,90.8,52.8,4,3,2,5,7]
>>> numbers.remove(max(numbers))
>>> max(numbers)
74
Run Code Online (Sandbox Code Playgroud)

从列表中获取第二大数字的一种非常简单,快捷的方法.除了简单列表处理有助于编写两次遍历列表的程序,找到最大的然后是第二大的.它也具有破坏性 - 如果我想保留原始数据,我需要两份数据.我们需要:

>>> numbers = [20,67,3,2.6,7,74,2.8,90.8,52.8,4,3,2,5,7]
>>> if numbers[0]>numbers[1]):
...    m, m2 = numbers[0], numbers[1]
... else:
...    m, m2 = numbers[1], numbers[0]
...
>>> for x in numbers[2:]:
...    if x>m2:
...       if x>m:
...          m2, m = m, x
...       else:
...          m2 = x
...
>>> m2
74
Run Code Online (Sandbox Code Playgroud)

它只运行一次列表,但不像以前的解决方案那样简洁明了.

那么:在这样的情况下,有没有办法让两者都有?第一个版本的清晰度,但第二个版本的单个运行?

python performance

37
推荐指数
6
解决办法
12万
查看次数

在Scratch之后教什么?

我的儿子在Scratch中热情地编写简单的游戏.然而,Scratch是一个非常简单的编程环境(甚至没有子程序),我很快就会看到他需要转向别的东西.

有没有人知道一种很好的学习语言,它使图形变得简单但提供了"真正的"编程功能,如数据结构,函数,数组和列表?

如果它在Linux(Ubuntu)下运行,则奖励积分."foo with library Bar"形式的答案也是一种选择.

language-agnostic mit-scratch block-programming

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

学习编程语言概念

作为一名学生老师,我非常感兴趣的是,像Scratch,Logo,Alice和Lego mindstorms这样的"迷你语言"如何有效地教导学生编程的核心概念,如变量,函数和循环.

在教授这些基本核心概念时,一种"迷你语言"比另一种更好吗?

alice lego-mindstorms mit-scratch logo-lang block-programming

10
推荐指数
2
解决办法
865
查看次数

PHP - 从文件名字符串中剥离扩展名

我想从文件名中删除扩展名,并获取文件名 - 例如file.xml - > file,image.jpeg - > image,test.march.txt - > test.march等.

所以我写了这个函数

function strip_extension($filename) {
   $dotpos = strrpos($filename, ".");
   if ($dotpos === false) {
      $result = $filename;
   }
   else {
      $result = substr($filename,0,$dotpos);
   }
   return $result;
}
Run Code Online (Sandbox Code Playgroud)

返回一个空字符串.

我看不出我做错了什么?

php string

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

Scratch编程块背后的架构是什么?

我需要构建一个迷你版本的编程块,用于Scratch或稍后的快照!或者打开块.

所有这些代码都很大而且难以理解,特别是在Scratch中,它是用SmallTalk的某种子集编写的,我不知道.

我在哪里可以找到他们用来解析块并将其转换为一组指令的算法,这些指令可以处理某些事情,比如Scratch中的动画或游戏?

我对编程块概念背后的算法或体系结构非常感兴趣.

mit-scratch block-programming

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

Alice和Scratch年龄在8岁以上,8岁以下怎么样?

我刚刚发现了Alice和Scratch.我很快就会实施这些.但是,我想知道,对于一年级到第四/第五年级的孩子来说,什么是好材料?

alice mit-scratch block-programming

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

在Oracle中导入CSV数据(尝试Apex/SQL Developer)

我最初在超级用户上问过这个问题,但是有人建议我转发这里.

我使用的是最新版本的APEX(4.1.1)和Oracle(11.2.0.3).

我正在将CSV数据上传到一组表格.我一直在尝试,并遇到了一些我以前没见过的问题.

举个例子,我试图将数据导入到这个表中:

CREATE TABLE SW_ENGINEER 
   (ENGINEER_NO VARCHAR2(10), 
          ENGINEER_NAME VARCHAR2(50), 
           CONSTRAINT SW_ENG_PK PRIMARY KEY (ENGINEER_NO))
Run Code Online (Sandbox Code Playgroud)

它在这个简化的数据子集上失败:

call log no,contract_no,call date,agreed date,agreed time,actual arrive,engineer no,engineer name,equipment code,cust desc,eng desc
a,b,c,22-Mar-06,1,23/03/2006 15:00,654,Flynn Hobbs,d,e,f
a,b,c,22-Mar-06,2,23/03/2006 15:00,654,Flynn Hobbs,d,e,f
a,b,c,19-Mar-06,3,19/03/2006 09:15,351,Rory Juarez,d,e,f
Run Code Online (Sandbox Code Playgroud)

(它在更大的数据集上以相同的方式失败)我无法使用APEX或SQL Developer加载它,如下所示:

  • APEX:使用APEX Data Workshop,导入文本,加载现有表,使用逗号分隔,选择表和文件,勾选"标题行"的复选框,我们有列映射表单显示正确的数据.然后将除engineer_no和engineer_name之外的所有列设置为"否",并单击"加载数据".

这似乎工作,并在文本数据加载存储库中显示摘要行,但在检查时它已加载0行和79失败.单击79显示它们都遭受"ORA-01008:并非所有变量绑定".所选列对我来说看起来不错,所以我想知道它是否仍包括其他一些,尽管有"否"设置?

如果我在上传之前编辑csv以删除不相关的列,则不会出现此问题,但如果我可以使用列映射则会更容易.

  • SQL Developer:使用SD中的导入数据向导,我发现它不会进入列映射,除非选中Header Row(按钮已启用但不起作用 - 为什么不?),但是如果选中它(正确地在这种情况下)然后验证步骤失败,因为"表列Engineer_no不够大......".

我发现可以通过从csv文件列中删除标头值来克服这个问题.所以看起来设置Header Row复选框实际上并不会导致它忽略标题行,而是导致错误的标题值'engineer-no'.这对我来说似乎不对.我过去使用过两种方法都没有问题,我想知道最近的升级是否与此有关.

有任何想法吗 ?还是我错过了一些明显的东西?

sql csv oracle import oracle-apex

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

如何从窗口小部件应用程序访问SQL数据库

由于一些意见,问题简而言之:

小部件如何访问自己的sqlite数据库?

为什么它不适用于普通的DatabaseAdapter类?

是否需要某些权限?

Remotevie/AppWidgetProvider是否有限制访问自己的数据库(没有ContentProvider)


问题似乎很简单,但如果有人真的想知道我为什么要问:

我有以下设置:

  1. 我有一个普通的Android应用程序,它在assets文件夹中有很多HTML页面.由于应用程序的大小,首选的安装位置是外部SD卡.这很好用.

  2. 这意味着应用程序不能包含小部件,因为小部件需要驻留在内部ROM中.

  3. 相反,小部件将从外部SD卡上的应用程序数据库中读取.这是通过ContentProvider/ContentProviderClient实现的.

到目前为止工作正常.

现在,该小部件需要在每个实例的基础上维护一些持久性配置设置.因此,AppWidgetProvider类不能使用首选项,因为它们将基于每个类应用.

因此,为了保留(非常复杂的)实例 - 特定配置数据,我希望AppWidgetProvider类拥有自己的小sqllite数据库.

现在,虽然我可以通过contentprovider从小部件访问应用程序的数据库,但似乎小部件无法访问自己的数据库.我在widget项目中有一个数据库适配器类; 在AppWidgetProvider中,我有Context,但似乎没有写作.

对数据库适配器的调用通过OK(我已完成一些日志记录),但是当我检查表时,没有发生任何写入.

这是为什么?我是否真的需要窗口小部件中的ContentProvider来访问窗口小部件的数据库?我不想走这条路,因为当我实现从小部件访问apps数据库时,我不得不通过ContentProviderClient而不是ContentProvider.这将非常麻烦.因为我需要比CRUD更多的东西,显然这将涉及创建自定义ContentProviderClient.android文档明确指出"如果使用完全在您自己的应用程序中,您不需要提供程序来使用SQLite数据库." 那么恕我直言,这意味着,小部件可以直接访问其数据库?我需要特殊权限吗?我怀疑,因为小部件在主屏幕进程中作为RemoteViews运行,对db的访问在某种程度上是有限的?有关于此的任何想法,想法和提示吗?

database android widget

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

HTML5跨文档消息传递:恶意代码可以在domainA.com和domainB.com之间嗅探消息吗?

根据10.4跨文档消息传递:domainA.com可以使用跨文档消息传递向domainB.com发送消息,以防止在验证源和数据时发生跨站点脚本攻击.

在此输入图像描述

问题:考虑domainA.com受到攻击,攻击者注入有效负载来跟踪domainA.com和domainB.com之间的消息,这可能吗?

为了更好地理解:它可以通过改变原始Web Socket对象来嗅探Web Socket流量,工作示例解释了这里,我提取了这部分:

if (captureWebsocket && window.WebSocket) {

// add logging onmessage listener
function captureRecv(ws) {
  if (typeof ws.captured == 'undefined') {
    ws.addEventListener('message', function(e) {
      var event = {
          event: 'websocket_recv',
          from: location,
          data: e.data,
          url: e.target.URL
      }
      log(event);
    });
    ws.captured = true;
  }
}

// capture sending
var captureSend = this.contentWindow.WebSocket.prototype.send = function() {
  captureRecv(this); // in case socket contruction was before constructor switching
  var event = {
      event: 'websocket_send',
      from: location,
      data: …
Run Code Online (Sandbox Code Playgroud)

javascript security xss cross-domain websocket

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

ARM 的 vim 交叉编译

我正在使用arm-linux-gnueabi并尝试为我的设备编译vim。经过一段时间的搜索和研究,我成功了,但是当我从设备启动它时,我看到了这一点:

# /usr/tmp/vim/bin/vim
~
...
~
~VIM - Vi IMprovedversion 7.4.873by Bram Moolenaar et al.Vim is open source and freely distributableSponsor Vim development!type  :help sponsor<Enter>    for informationtype  :q<Enter>to exittype  :help<Enter>  or  <F1>  for on-line helptype  :help version7<Enter>   for version infoRunning in Vi compatible modetype  :set nocp<Enter>for Vim defaultstype  :help cp-default<Enter> for info on this
Run Code Online (Sandbox Code Playgroud)

光标不会向任何方向移动,并且我输入的文本进入最后一行。Vim 命令运行良好。

如果重要的话,在编译过程中我编译了ncurses库并使用标志来定位它:

export LD_LIBRARY_PATH="<my_path>/lib/"
export CPPFLAGS="-L<my_path>/ncurses"
export LDFLAGS="-L<my_path>/lib"
Run Code Online (Sandbox Code Playgroud)

但如果没有--with-tlib=ncurses我有一个错误:

checking for tgetent in -lncurses... yes
ncurses …
Run Code Online (Sandbox Code Playgroud)

linux vim ncurses cross-compiling

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

使用被调用者参数列表的尾部调用函数

我正在尝试编写一个使用其第一个参数的函数,然后将其余的(不知道多少个)发送给另一个:

function consume_data() {
   args = consume_data.arguments;
   do_some(args[0]);
   consume_the_rest(args[1], args[2], args[3] ... );
}
Run Code Online (Sandbox Code Playgroud)

我是否必须使用字符串来组成呼叫和评估或是否有更简洁的方式?

javascript

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

为什么自连接语法如此奇怪?

我在这里重复一个学生问题.我已经给出了某种解释,但希望你有更好,更清晰的解释.

使用表的两个别名完成自联接:

SELECT parent.Name, child.Name
FROM Person parent
INNER JOIN Person child ON parent.Id = child.ParentId
Run Code Online (Sandbox Code Playgroud)

但这听起来好像我们让事情变得复杂.所以:

(1)真的需要别名吗?为什么?

(2)从技术上讲,只使用一个别名是可能的.为什么所有示例,在线,教科书,教程,总是使用两个别名?

sql database

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