我正在学习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)
它只运行一次列表,但不像以前的解决方案那样简洁明了.
那么:在这样的情况下,有没有办法让两者都有?第一个版本的清晰度,但第二个版本的单个运行?
我的儿子在Scratch中热情地编写简单的游戏.然而,Scratch是一个非常简单的编程环境(甚至没有子程序),我很快就会看到他需要转向别的东西.
有没有人知道一种很好的学习语言,它使图形变得简单但提供了"真正的"编程功能,如数据结构,函数,数组和列表?
如果它在Linux(Ubuntu)下运行,则奖励积分."foo with library Bar"形式的答案也是一种选择.
作为一名学生老师,我非常感兴趣的是,像Scratch,Logo,Alice和Lego mindstorms这样的"迷你语言"如何有效地教导学生编程的核心概念,如变量,函数和循环.
在教授这些基本核心概念时,一种"迷你语言"比另一种更好吗?
alice lego-mindstorms mit-scratch logo-lang block-programming
我想从文件名中删除扩展名,并获取文件名 - 例如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)
返回一个空字符串.
我看不出我做错了什么?
我需要构建一个迷你版本的编程块,用于Scratch或稍后的快照!或者打开块.
所有这些代码都很大而且难以理解,特别是在Scratch中,它是用SmallTalk的某种子集编写的,我不知道.
我在哪里可以找到他们用来解析块并将其转换为一组指令的算法,这些指令可以处理某些事情,比如Scratch中的动画或游戏?
我对编程块概念背后的算法或体系结构非常感兴趣.
我刚刚发现了Alice和Scratch.我很快就会实施这些.但是,我想知道,对于一年级到第四/第五年级的孩子来说,什么是好材料?
我最初在超级用户上问过这个问题,但是有人建议我转发这里.
我使用的是最新版本的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加载它,如下所示:
这似乎工作,并在文本数据加载存储库中显示摘要行,但在检查时它已加载0行和79失败.单击79显示它们都遭受"ORA-01008:并非所有变量绑定".所选列对我来说看起来不错,所以我想知道它是否仍包括其他一些,尽管有"否"设置?
如果我在上传之前编辑csv以删除不相关的列,则不会出现此问题,但如果我可以使用列映射则会更容易.
我发现可以通过从csv文件列中删除标头值来克服这个问题.所以看起来设置Header Row复选框实际上并不会导致它忽略标题行,而是导致错误的标题值'engineer-no'.这对我来说似乎不对.我过去使用过两种方法都没有问题,我想知道最近的升级是否与此有关.
有任何想法吗 ?还是我错过了一些明显的东西?
由于一些意见,问题简而言之:
小部件如何访问自己的sqlite数据库?
为什么它不适用于普通的DatabaseAdapter类?
是否需要某些权限?
Remotevie/AppWidgetProvider是否有限制访问自己的数据库(没有ContentProvider)
我有以下设置:
我有一个普通的Android应用程序,它在assets文件夹中有很多HTML页面.由于应用程序的大小,首选的安装位置是外部SD卡.这很好用.
这意味着应用程序不能包含小部件,因为小部件需要驻留在内部ROM中.
相反,小部件将从外部SD卡上的应用程序数据库中读取.这是通过ContentProvider/ContentProviderClient实现的.
到目前为止工作正常.
现在,该小部件需要在每个实例的基础上维护一些持久性配置设置.因此,AppWidgetProvider类不能使用首选项,因为它们将基于每个类应用.
因此,为了保留(非常复杂的)实例 - 特定配置数据,我希望AppWidgetProvider类拥有自己的小sqllite数据库.
现在,虽然我可以通过contentprovider从小部件访问应用程序的数据库,但似乎小部件无法访问自己的数据库.我在widget项目中有一个数据库适配器类; 在AppWidgetProvider中,我有Context,但似乎没有写作.
对数据库适配器的调用通过OK(我已完成一些日志记录),但是当我检查表时,没有发生任何写入.
这是为什么?我是否真的需要窗口小部件中的ContentProvider来访问窗口小部件的数据库?我不想走这条路,因为当我实现从小部件访问apps数据库时,我不得不通过ContentProviderClient而不是ContentProvider.这将非常麻烦.因为我需要比CRUD更多的东西,显然这将涉及创建自定义ContentProviderClient.android文档明确指出"如果使用完全在您自己的应用程序中,您不需要提供程序来使用SQLite数据库." 那么恕我直言,这意味着,小部件可以直接访问其数据库?我需要特殊权限吗?我怀疑,因为小部件在主屏幕进程中作为RemoteViews运行,对db的访问在某种程度上是有限的?有关于此的任何想法,想法和提示吗?
根据10.4跨文档消息传递: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) 我正在使用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) 我正在尝试编写一个使用其第一个参数的函数,然后将其余的(不知道多少个)发送给另一个:
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)
我是否必须使用字符串来组成呼叫和评估或是否有更简洁的方式?
我在这里重复一个学生问题.我已经给出了某种解释,但希望你有更好,更清晰的解释.
使用表的两个别名完成自联接:
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)从技术上讲,只使用一个别名是可能的.为什么所有示例,在线,教科书,教程,总是使用两个别名?
mit-scratch ×4
alice ×2
database ×2
javascript ×2
sql ×2
android ×1
cross-domain ×1
csv ×1
import ×1
linux ×1
logo-lang ×1
ncurses ×1
oracle ×1
oracle-apex ×1
performance ×1
php ×1
python ×1
security ×1
string ×1
vim ×1
websocket ×1
widget ×1
xss ×1