string s = "string";
Console.WriteLine(s[1]); // returns t
char[] chars = s.ToCharArray();
Console.WriteLine(chars[1]); // also returns t
Run Code Online (Sandbox Code Playgroud)
那么这个方法有什么意义呢?
我不太清楚如何写这个:我想生成一个从0到2的随机数,然后编写一个if只有33%的时间执行特定代码的语句.
这就是我试图做的事情:
if (rand(0, 3)=="2") { echo "Success" };
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现文件夹查看器来查看特定路径的结构.这个文件夹视图应该看起来像PyQT中的树小部件,我知道文件对话框可以帮助,但我需要在我的主窗口中.
我试图使用QTreeWidget实现这一点,我使用一个递归函数循环文件夹,但这太慢了.因为它需要递归大量的文件夹.这是正确的方法吗?或者有一个现成的qt解决方案来解决这个问题.
检查下图.

我有一个多变量函数,我想使用map()函数.
例:
def f1(a, b, c):
return a+b+c
map(f1, [[1,2,3],[4,5,6],[7,8,9]])
Run Code Online (Sandbox Code Playgroud) 我的GUI中有一个插槽功能需要一些时间才能完成(10-15秒).我想灰色布局并显示一个"请等待......"的框,当插槽功能完成时它将消失.
我需要它是异步的,因为我想QProgressBar在"请稍候..."窗口中使用一个小部件.
如何才能做到这一点?
我应该在哪里使用except块来记录a的异常QApplication?
这似乎不起作用:
app = QtGui.QApplication(sys.argv)
MainWindow = MainWindow()
MainWindow.show()
try:
eventLoop = app.exec_()
except Exception, e:
log.exception(str(e))
Run Code Online (Sandbox Code Playgroud)
因为例外甚至不会到达那个街区.
在我的项目中,我使用multiprocessing该类来平行运行任务.我想要使用threading,因为它具有更好的性能(我的任务是TCP/IP绑定,而不是CPU或I/O绑定).
multiprocessing有精彩的功能,Pool.imap_unordered并且Pool.map_async,不会在存在threading阶级.
将代码转换为使用的正确方法是什么threading?该文档介绍了multiprocessing.dummy该类,它是该类的包装器threading.但是这会引发很多错误(至少在python 2.7.3上):
pool = multiprocessing.Pool(processes)
File "C:\python27\lib\multiprocessing\dummy\__init__.py", line 150, in Pool
return ThreadPool(processes, initializer, initargs)
File "C:\python27\lib\multiprocessing\pool.py", line 685, in __init__
Pool.__init__(self, processes, initializer, initargs)
File "C:\python27\lib\multiprocessing\pool.py", line 136, in __init__
self._repopulate_pool()
File "C:\python27\lib\multiprocessing\pool.py", line 199, in _repopulate_pool
w.start()
File "C:\python27\lib\multiprocessing\dummy\__init__.py", line 73, in start
self._parent._children[self] = None
AttributeError: '_DummyThread' object has no attribute '_children'
Run Code Online (Sandbox Code Playgroud)
编辑:实际发生的是我有一个运行不同线程的GUI(以防止GUI被gettint卡住).该线程运行具有ThreadPool失败的特定搜索功能.
编辑2:错误修复 …
我有以下函数获取源和修改后的字符串,并在其中加粗更改的单词.
def appendBoldChanges(s1, s2):
"Adds <b></b> tags to words that are changed"
l1 = s1.split(' ')
l2 = s2.split(' ')
for i, val in enumerate(l1):
if l1[i].lower() != l2[i].lower():
s2 = s2.replace(l2[i], "<b>%s</b>" % l2[i])
return s2
print appendBoldChanges("britney spirs", "britney spears") # returns britney <b>spears</b>
Run Code Online (Sandbox Code Playgroud)
它在具有相同字数的字符串上工作正常,但是因字符数不同而失败,因为sora iro days和sorairo days.
我怎样才能考虑间隔?
我想打开Windows资源管理器并选择一个特定的文件.这是API : explorer /select,"PATH". 因此导致以下代码(使用python 2.7):
import os
PATH = r"G:\testing\189.mp3"
cmd = r'explorer /select,"%s"' % PATH
os.system(cmd)
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但当我切换到非shell模式(with pythonw)时,在启动资源管理器之前会出现一个黑色的shell窗口.
这是预料之中的os.system.我创建了以下函数来启动进程而不生成一个窗口:
import subprocess, _subprocess
def launch_without_console(cmd):
"Function launches a process without spawning a window. Returns subprocess.Popen object."
suinfo = subprocess.STARTUPINFO()
suinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW
p = subprocess.Popen(cmd, -1, stdout=subprocess.PIPE, stderr=subprocess.PIPE, startupinfo=suinfo)
return p
Run Code Online (Sandbox Code Playgroud)
这适用于没有GUI的shell可执行文件.但它不会发布explorer.exe.
如何在不产生黑色窗口的情况下启动该过程?
错误的unicode字符串是在其中意外编码的字节.例如:
文本:????,Windows-1255编码:\x99\x8c\x85\x8d,Unicode : u'\u05e9\u05dc\u05d5\u05dd',错误的Unicode:u'\x99\x8c\x85\x8d'
在解析MP3文件中的ID3标签时,我有时碰到这样的字符串.我该如何修复这些字符串?(例如转换u'\x99\x8c\x85\x8d'成u'\u05e9\u05dc\u05d5\u05dd')