我写了这个简单的函数:
def padded_hex(i, l):
given_int = i
given_len = l
hex_result = hex(given_int)[2:] # remove '0x' from beginning of str
num_hex_chars = len(hex_result)
extra_zeros = '0' * (given_len - num_hex_chars) # may not get used..
return ('0x' + hex_result if num_hex_chars == given_len else
'?' * given_len if num_hex_chars > given_len else
'0x' + extra_zeros + hex_result if num_hex_chars < given_len else
None)
Run Code Online (Sandbox Code Playgroud)
例子:
padded_hex(42,4) # result '0x002a'
hex(15) # result '0xf'
padded_hex(15,1) # result '0xf'
Run Code Online (Sandbox Code Playgroud)
虽然这对我来说足够清楚并且适合我的用例(一个简单的打印机简单的测试工具),我不禁想到有很大的改进空间,这可以被压缩到非常简洁的东西.
还有哪些方法可以解决这个问题?
我正在尝试使用ffmpeg将静音音轨添加到MOV文件中.
我创建了一个比视频更长的静音音轨,并打算在ffmpeg中使用-shortest选项.
使用SoX v14.3.1,我运行它来生成一个wav文件:
sox -n -r 44100 -b 16 -c 2 -L silence.wav trim 0.0 60.000
# -n = Sox's null file
# -r = sample rate
# -b = bits per sample
# -c = num of channels
# -L = little endian
# filename
# trim - is an effect, args start and length.
Run Code Online (Sandbox Code Playgroud)
我的基本ffmpeg命令如下所示:
ffmpeg -shortest \
-i silence.wav -acodec pcm_s16le \
-i vid_no_sound.mov -vcodec copy vid_with_sound.mov
Run Code Online (Sandbox Code Playgroud)
结果是:
ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg …Run Code Online (Sandbox Code Playgroud) example.py:
'''
demo too many ancestors
'''
from flask_security.forms import RegisterForm
from wtforms.fields import TextField
class ExtendedRegisterForm(RegisterForm):
'''An extended register form'''
name = TextField('Name', [])
Run Code Online (Sandbox Code Playgroud)
当我运行pylint时:
$ pylint -r n example.py
************* Module example
R: 7, 0: Too many ancestors (10/7) (too-many-ancestors)
Run Code Online (Sandbox Code Playgroud)
这是什么意思,我该如何解决?
我试图从网站上刮取表格数据.
这是一个简单的示例表:
t = '<html><table>' +\
'<tr><td class="label"> a </td> <td> 1 </td></tr>' +\
'<tr><td class="label"> b </td> <td> 2 </td></tr>' +\
'<tr><td class="label"> c </td> <td> 3 </td></tr>' +\
'<tr><td class="label"> d </td> <td> 4 </td></tr>' +\
'</table></html>'
Run Code Online (Sandbox Code Playgroud)
期望的解析结果是 {' a ': ' 1 ', ' b ': ' 2 ', ' c ': ' 3 ', ' d ' : ' 4' }
这是我迄今为止最接近的尝试:
for tr in s.findAll('tr'):
k, v = BeautifulSoup(str(tr)).findAll('td')
d[str(k)] = str(v)
Run Code Online (Sandbox Code Playgroud)
结果是:
{'<td class="label"> …Run Code Online (Sandbox Code Playgroud) 我看到Javascript代码在函数关闭大括号后立即使用括号,我无法理解它们用于什么.
例:
function foo(bar){
return bar;
}(0);
Run Code Online (Sandbox Code Playgroud)
怎么(0)办?
这个叫什么?
你应该什么时候使用这种技术?
这是一些"坏"代码:
Module test
Sub Main()
Console.WriteLine("1<2 = " + cstr((1<2)))
Console.WriteLine("2<1 = " + cstr((2<1)))
Console.WriteLine("1<2<3 = " + cstr((1<2<3)))
Console.WriteLine("3<2<1 = " + cstr((3<2<1)))
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
这个输出是:
1<2 = True
2<1 = False
1<2<3 = True
3<2<1 = True
Run Code Online (Sandbox Code Playgroud)
1<2<3 是正确的,但不是正确的理由.
3<2<1评估为True.为什么?
有人能解释一下这里发生了什么吗?
我知道我应该使用a<b and b<c但我想知道当你使用连续运算符时会发生什么.即,为什么编译器不哭!像这样的语法用于别的东西吗?
如果我想创建一个由用户决定的水平星号,我该怎么做?例如,我想打印一行显示
01:...........(自定义编号)
02:........(自定义编号)
03:...... (自定义编号)
等...
在这种情况下,我从一个文件中获取销售数字并打印一些星号,这些星号代表公司在任何一天的收入数百.万一改变什么.
对不起,编辑:这是在python中
如果在循环内部,是否可以在循环的后续迭代期间实例化要操作的对象,并且在循环的范围被保留时仍然可用?
这是我认为可行的一个简单示例:
>>> for i in range(2):
... r = [] if r is None else r
... r.append[i]
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'r' is not defined
Run Code Online (Sandbox Code Playgroud)
这是我第二次尝试使用NameError异常:
>>> for i in range(2):
... try:
... r = r
... except NameError:
... r = []
... r.append(i)
...
>>>
Run Code Online (Sandbox Code Playgroud)
我怀疑我一直试图做的事实上是禁止的,但我不明白为什么会这样.
有人可以为我点上这些吗?
编辑:
所以第二种方式有效,但它很长.有快速的方法吗?