在Python的标准库中是否有AVL或Red-Black模块或其他类型的平衡二叉树?我试图找到一个,但没有成功(我对Python比较新).
我有两个char*我要比较的邮政编码,忽略了大小写.有这个功能吗?
或者我是否必须遍历每个使用tolower函数然后进行比较?
知道这个函数如何对字符串中的数字做出反应
谢谢
我对"C标准库"和"C POSIX库"感到有些困惑,因为我发现"C POSIX lib"中定义的许多头文件也是"C标准库"的一部分.
因此,我认为,"C标准库"是由ANSI C组织定义的库,并且在不同平台(Win32/Unix-like)上有不同的实现,而"C POSIX lib"只是"C标准"的实现lib"在类Unix操作系统上,对吗?
但是"C POSIX LIB"包含了一些头在"C标准库"未指定,如<sys/types.h>,<sys/wait.h>和<pthread.h>.
以<pthread.h>为例,我相信它的"C标准库"对应的是<threads.h>,那么如果我想要写Linux上的多线程程序,这头文件,我应该包括,<pthread.h>还是<threads.h>?
寻找一种更好的方法来获取机器当前的外部IP#...下面工作,但宁愿不依赖外部网站来收集信息......我只能使用与Mac OS捆绑在一起的标准Python 2.5.1库X 10.5.x
import os
import urllib2
def check_in():
fqn = os.uname()[1]
ext_ip = urllib2.urlopen('http://whatismyip.org').read()
print ("Asset: %s " % fqn, "Checking in from IP#: %s " % ext_ip)
Run Code Online (Sandbox Code Playgroud) 鉴于这个C++ 11程序,我应该期待看到一个数字还是一个字母?还是没有期望?
#include <cstdint>
#include <iostream>
int main()
{
int8_t i = 65;
std::cout << i;
}
Run Code Online (Sandbox Code Playgroud)
标准是否指定此类型是否可以是字符类型?
考虑以下一般形式的功能:
Foo findFoo(Collection<Foo> foos, otherarguments)
throws ObjectNotFoundException {
for(Foo foo : foos){
if(/* foo meets some condition*/){
return foo;
}
}
throw new ObjectNotFoundException();
}
Run Code Online (Sandbox Code Playgroud)
例如,一个具体的案例是:
User findUserByName(Collection<User> users, String name)
throws ObjectNotFoundException {
for(User user : users){
if(user.getName().equals(name)){
return user;
}
}
throw new ObjectNotFoundException();
}
Run Code Online (Sandbox Code Playgroud)
如果找不到对象,这些函数会抛出异常.我可以为此目的创建一个自定义异常类(在示例中ObjectNotFoundException),但我更喜欢使用现有的类.但是,我在标准java库中找不到具有此含义的任何异常类.您知道是否有可以在这里使用的标准例外吗?
我正在巴黎大学教授一个研究生水平的Python课程,学生需要被引入标准库.我想与他们讨论一些最重要的标准模块.
你认为哪些模块绝对必须?尽管反应取决于你的域(web编程,科学等)可能会发生变化,我觉得有些模块通常需要:math,sys,re,os,os.path,logging,...也许:collections,struct,...
你会建议我在一个或两个小时的时间内出示什么模块?
如何检查Perl模块是否是核心的一部分 - 即它是标准安装的一部分?
我在找:
也许问题应该是:如何判断最初在机器上安装特定 Perl的模块?(实际上,它现在被问到如何判断最初在机器上安装特定Perl的模块?)
鉴于现在似乎不是一个整体的Perl标准安装,至少这个新问题的答案将告诉我最初在安装时的安装.
有了这些知识,如果我保留原始的安装程序映像/包或者知道如何在线再次获取确切的东西,那么我可以为多台机器安装可重复的Perl,了解将出现哪些模块以及哪些模块不会出现.
为了进一步澄清:我在看什么就用原来的安装,提供了作为安装的一部分什么模块,什么是内置.不是从那以后安装的.
我希望能够在安装的机器上执行此操作.因此,我将依靠安装以某种形式记录它最初的内容.
我问分拆问题: 如何判断最初在机器上安装特定Perl的模块?(如何判断最初在计算机上安装特定Perl的模块?)
这是受到这个问题以及对一个特定答案的评论的启发,我strncpy在C 中学到了这不是一个非常安全的字符串处理函数,它会填充零,直到它到达n,我不知道的东西.
具体来说,引用R ..
strncpy不会为null终止,并且会对目标缓冲区的其余部分进行空填充,这是一个巨大的浪费时间.您可以通过添加自己的空填充来解决前者,但不能添加后者.它从未打算用作"安全字符串处理"功能,但是用于处理Unix目录表和数据库文件中的固定大小字段.snprintf(dest,n,"%s",src)是标准C中唯一正确的"安全strcpy",但它可能会慢很多.顺便说一下,截断本身可能是一个主要的错误,并且在某些情况下可能会导致权限提升或DoS,因此抛出"安全"字符串函数会在问题中截断其输出并不是使其"安全"或"安全".相反,您应该确保目标缓冲区的大小合适,并且只需使用strcpy(或者更好的是,如果您已经知道源字符串长度,则使用memcpy).
请注意,strncat()在其接口中比strncpy()更令人困惑 - 这个长度参数到底又是什么?根据你提供的strncpy()等,它不是你所期望的 - 所以它甚至比strncpy()更容易出错.为了复制字符串,我越来越认为有一个强烈的论据,你只需要memmove(),因为你总是提前知道所有的大小,并确保提前有足够的空间.使用memmove()优先于strcpy(),strcat(),strncpy(),strncat(),memcpy()中的任何一个.
所以,我在C标准库上显然有些生疏.因此,我想提出一个问题:
哪些C标准库函数使用不当/可能导致/导致安全问题/代码缺陷/效率低下?
为了客观性,我有一些答案的标准:
请避免:
由于这可能被认为是主观的,并且没有明确的答案,我正在为社区维基立刻做好准备.
我也按照C99工作.
考虑面向对象的语言:
大多数人来自面向对象的编程背景,熟悉各种语言中常见且直观的界面,这些界面捕获了Java Collection和List界面的本质.Collection"对象"是指不一定具有自然排序/索引的对象集合.A List是具有自然排序/索引的集合.这些接口在Java中抽象了许多库数据结构,其他语言中的等效接口也是如此,并且需要对这些接口有深入的了解才能有效地与大多数库数据结构一起工作.
过渡到Haskell:
Haskell有一个类型级系统,它类似于对象上的接口作用于类型.当类型考虑功能时,Haskell似乎有一个关于Functors,Applicative,Monads等的设计良好的类型层次结构.他们显然想要正确且抽象良好的类型类.然而,当你看很多Haskell的容器(List,Map,Sequence,Set,Vector)他们几乎都具有非常相似(或相同)的功能,但通过类型类不是抽象的.
一些例子:
null 用于测试"空虚"length/size用于元素计数elem/member用于设置包含empty 和/或 singleton默认构造union 为集合联盟(\\)/diff用于设定差异(!)/(!!)用于不安全的索引(部分功能)(!?)/lookup用于安全索引(总功能)如果我想使用上面的任何函数,但是我已经导入了两个或更多个容器,我必须从导入的模块中开始隐藏函数,或者只从模块中显式导入必要的函数,或者限定导入的模块.但由于所有功能都提供相同的逻辑功能,因此它似乎很麻烦.如果函数是从类型类定义的,而不是在每个模块中单独定义的,那么编译器的类型推理机制可以解决这个问题.只要它们共享类型类,它也会使底层容器切换变得简单(即:让我们只使用一个Sequence而不是List更好的随机访问效率).
为什么Haskell没有Collection和/或Indexable类型类来统一和概括其中的一些功能?