考虑以下IPython交流:
In [1]: s = u'??????'
In [2]: len(s)
Out[2]: 8
Run Code Online (Sandbox Code Playgroud)
应该是正确的输出7,但由于这七个中文字符中的第五个具有高Unicode代码点,因此它以UTF-8表示为"代理对",而不仅仅是一个简单的代码点,因此Python认为它是两个字符而不是一个字符.
即使我使用unicodedata,它将代理对正确地作为单个代码点(\U00026177)返回,当传递给len()错误的长度时仍然会返回:
In [3]: import unicodedata
In [4]: unicodedata.normalize('NFC', s)
Out[4]: u'\u83ef\u889e\u8207\u7dfc\U00026177\u540c\u6b78'
In [5]: len(unicodedata.normalize('NFC', s))
Out[5]: 8
Run Code Online (Sandbox Code Playgroud)
如果不采取像UTF-32重新编译Python这样的重大步骤,是否有一种简单的方法可以在这种情况下获得正确的长度?
我正在使用IPython 0.13,Python 2.7.2,Mac OS 10.8.2.
C++有一组函数ffs(),ffsl()和ffsll(),它们返回在给定二进制整数中设置的最低有效位.
我想知道Python中是否有可用的等效函数.我没有看到一个用于bitarray的描述,但也许还有另一个.我希望通过循环遍历所有可能的位掩码来避免计算答案,当然这是最后的选择; ffs()只返回一个整数,我想知道Python中可比的东西.
Android手机有数学或LaTeX引擎吗?我最喜欢的flashcard应用程序(AnyMemo)似乎无法将方程式集成到闪存卡中,除了图形,需要在用户方面做更多的工作,我认为第三方数学排字机是可能的.
(编辑2011.04.24)更多细节:从其他地方,我收到了以下关于一些可用选项的评论:
也许SO读者可以想到另一种方式?
我在VirtualBox v.4.1.12上分别在运行Mac OS 10.5.8和10.6.8的两台不同机器上安装了Ubuntu Precise(v.12.04).一切都按预期工作.我可以使用菜单中的"关机"命令关闭Ubuntu,并且客户操作系统确实关闭了.
但是当我尝试使用命令行关闭时sudo halt,当客户操作系统关闭时,它的窗口永远不会消失.
有谁知道为什么会这样?在相同的环境中,Ubuntu Lucid(v.10.04)没有这样的问题.
蟒2具有两个整数数据类型int和long,并自动将它们之间作为转换必要,特别是为了避免整数溢出.
我在Python中模拟C函数,我想知道是否有重新启用整数溢出的标准方法.对于nonce,我已经习惯了
overflow_point = maxint + 1
if value > overflow_point:
value -= 2 * overflow_point
Run Code Online (Sandbox Code Playgroud)
是否有更标准的方法来做同样的事情?
在Android(目标API 14-16)中,我有一个MainActivity和一个NextActivity.如果在块内部调用方法,则使用Intent NextActivity从内部开始是没有困难的:MainActivitygetIntent()onCreate()NextActivity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int data = 7;
...
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("data", data);
startActivity(intent);
}
}
public class NextActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final int data = this.getIntent().getIntExtra("data", 7);
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
但是,由于该字段data在匿名("内部")类中使用NextActivity,我被迫声明它final.
我不想声明字段final,如果我在开始之前在类的开头声明它们,我通常可以避免这样做onCreate().但由于某种原因,NextActivity如果getIntent()语句出现(没有 …
Ruby 有一个Queue类,只有几个方法:push、pop、length、empty?、clear、close、closed?和num_waiting。(加上同义词。)
我没有找到一种方法来检查队列对象的内容而不弹出它们 \xe2\x80\x94 ,也许是因为该类Queue旨在与线程而不是其他对象一起使用。
还是我错了?有没有办法检查队列对象的内容而不弹出它们?
\nPythonnamedtuple工厂函数允许它创建的子类的名称被指定两次——首先在声明的左侧,然后作为函数的第一个参数(IPython 1.0.0,Python 3.3.1):
In [1]: from collections import namedtuple
In [2]: TypeName = namedtuple('OtherTypeName', ['item'])
Run Code Online (Sandbox Code Playgroud)
我在 docs.python.org 站点上看到的所有示例在两个位置都使用相同的名称。但是可以使用不同的名称,它们的功能也不同:
In [3]: TypeName(1)
Out[3]: OtherTypeName(item=1)
In [4]: type(TypeName)
Out[4]: builtins.type
In [5]: type(OtherTypeName)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-8-6616c1214742> in <module>()
----> 1 type(OtherTypeName)
NameError: name 'OtherTypeName' is not defined
In []: OtherTypeName(1)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-9-47d6b5709a5c> in <module>()
----> 1 OtherTypeName(1)
NameError: name 'OtherTypeName' is not defined
Run Code Online (Sandbox Code Playgroud)
我想知道此功能可能有哪些应用程序。
我发现在Ubuntu 10.04上有两个旧的PostgreSQL安装的残骸:
$ pg_lsclustersVersion Cluster Port Status Owner Data directory Log file
Use of uninitialized value in printf at /usr/bin/pg_lsclusters line 38.
8.4 main 5432 down /var/lib/postgresql/8.4/main /var/log/postgresql/postgresql-8.4-main.log
Use of uninitialized value in printf at /usr/bin/pg_lsclusters line 38.
9.1 main 5433 down /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
$
Run Code Online (Sandbox Code Playgroud)
尝试执行基本功能会返回错误,例如:
createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)
当我尝试启动数据库服务器时会出现更多信息:
$ sudo /etc/init.d/postgresql …Run Code Online (Sandbox Code Playgroud) 在Android(定位API 14-16)中,我有一个如下onClickListener设置TextView:
theView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// actions
}
});
Run Code Online (Sandbox Code Playgroud)
点击的后果之一应该是禁用进一步的点击.我已尝试将其包括v.setOnClickListener(null);在"行动"中,但它没有达到要求的效果.我应该为此做些什么?
编辑:@Raghav Sood建议禁用TextView.在这种情况下,我有一个大的TextViews网格,其中只有一个被点击; 我想禁用所有这些.我想我必须用循环禁用所有内容; 那是对的吗?或者是否有一个命令可以禁用它们所在的整个布局?
在定义 SQLite3 表时,NOT NULL可以将约束应用于单个列:
CREATE TABLE tablename (
field1 INTEGER NOT NULL,
field2 INTEGER
);
Run Code Online (Sandbox Code Playgroud)
有没有办法不将NOT NULL约束应用于单个列,而是应用于一组两列或更多列,以便这些列中至少有一个不能为空,而其他任何或所有列都可以为空?
是否有公共或第三方REPL或其他工具可用于运行Mathematica代码?我已经发送了一些代码来评估,但除了尽可能聪明地阅读它之外,我还想看看它的输出.我怎么做?
python ×4
android ×3
ubuntu ×2
constraints ×1
ctypes ×1
latex ×1
namedtuple ×1
oncreate ×1
postgresql ×1
purge ×1
queue ×1
ruby ×1
sqlite ×1
virtualbox ×1