我想转换一个mac地址,
mac = '00:de:34:ef:2e:f4'
Run Code Online (Sandbox Code Playgroud)
成二进制格式.我正在使用的程序是,
mac = '00:de:34:ef:2e:f4'
r = mac.replace(':', '').decode('hex')
print r
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个程序时,我得到一个奇怪的输出,输出是
$ A $
我究竟做错了什么?
我有一个文本文件"luawrite",其中我将每行分成4列,我将第3列值除以(第3列值乘以8)与第4列值.文件luawrite看起来像这样:
0.012281001 00:1c:c4:c2:1f:fe 1441 44000000
0.012285001 00:1c:c4:c2:1f:fe 1441 44000000
0.012288001 00:1c:c4:c2:1f:fe 1441 44000000
0.012292001 00:1c:c4:c2:1f:fe 1441 44000000
0.012295001 00:1c:c4:c2:1f:fe 1441 44000000
0.012299001 00:1c:c4:c2:1f:fe 1441 44000000
0.012302001 00:1c:c4:c2:1f:fe 1441 44000000
Run Code Online (Sandbox Code Playgroud)
我为此编写的代码如下:
#!/usr/bin/python
import collections
result = collections.defaultdict(int)
with open("luawrite", "r") as f:
for line in f:
hashes = line.split()
val1 = int(hashes[2])
val2 = int(hashes[3])
k = (val1*8)/val2
print k
Run Code Online (Sandbox Code Playgroud)
我正在使用python 2.6.但我得到的解决方案都是零.这段代码中的问题在哪里,请告诉我.这可能是一个小错误,但我无法找到它.谢谢!
我是Fortran的新手.请看下面的代码:
c main program
call foo(2)
print*, 2
stop
end
subroutine foo(x)
x = x + 1
return
end
Run Code Online (Sandbox Code Playgroud)
非常感谢帮助.谢谢.
考虑以下声明:
double(*foo(double (*)(double, double[]), double)) (double, ...)
Run Code Online (Sandbox Code Playgroud)
这是一个家庭作业问题.我的分析是:
"foo is a function pointer to a function that has as it's first argument,
another function pointer to a function that returns a double and takes a
double and an array of doubles."
Run Code Online (Sandbox Code Playgroud)
这样对吗?任何人都可以用英语简化并指定正确/准确的表示吗?提前致谢!
我遇到了以下问题:
Does filename “globbing” provide the expressive power of standard regular expressions? Explain
.
问题是,我知道什么是globbing,我知道正则表达式.但这种表现力是什么?我应该在什么基础上回答这个问题?我知道在globbing和regex中,"?" 和"*"结构的使用方式不同.我应该只提一下它们的用法差异吗?在维基百科中,正则表达式的表达能力是根据形式语言和自动机来给出的.解决方案是否复杂?提前致谢!
我正在逐行写一行到外部文件.每行有9列,由制表符分隔符分隔.如果我拆分该文件中的每一行并输出最后一列,我可以看到\n被附加到9列的末尾.我的代码是:
#!/usr/bin/python
with open("temp", "r") as f:
for lines in f:
hashes = lines.split("\t")
print hashes[8]
Run Code Online (Sandbox Code Playgroud)
最后一列的值是整数,1或2.当我运行这个程序时,我得到的输出是,
['1\n']
['2\n']
Run Code Online (Sandbox Code Playgroud)
我应该只得到1或2.为什么'\n'被附加在这里?
我尝试了以下检查来解决问题.
with open("temp", "r") as f:
for lines in f:
if lines != '\n':
hashes = lines.split("\t")
print hashes[8]
Run Code Online (Sandbox Code Playgroud)
这也是行不通的.我试过了if lines != ' '.我怎么能让它消失?提前致谢.
我把这看作是一个面试问题.这个问题似乎很有趣.所以,我在这里发帖.
考虑给出除以零之类的语义错误的操作.默认情况下,python编译器提供类似"无效操作"之类的输出.我们可以控制Python编译器给出的输出,比如打印一些其他错误消息,通过零操作跳过该除法,并继续执行其余的指令吗?
而且,我如何评估运行时语义检查的成本?这里有很多python专家.我希望有人会对此有所了解.提前致谢.
我面临着一个奇怪的问题.相同文本文件的md5sum在windows和linux上是不同的.我希望它是相同的,因为哈希是使用文件中存在的内容生成的,并且不依赖于操作系统.是否有任何具体原因发生这样的事情?sha1sum也一样吗?
我有一本大字典.如何按递减顺序对这些条目进行排序,然后打印前n个项目?要在字典中打印已排序的项目,我使用此代码:
print sorted(mydictionary.iteritems(), key=operator.itemgetter(1), reverse=True)
Run Code Online (Sandbox Code Playgroud) 我有一个字样
fef2.
Run Code Online (Sandbox Code Playgroud)
我只需要那个单词的"f2"(第3和第4个字符的连接).我如何从使用split分配的单词中提取它.当我看到拆分的功能时,它只有在有分隔符时才有效.如果单词中没有分隔符,如何拆分?
我有两个变量(实际上是两个不同矩阵的元素).例如,我想成倍增加
a[i][k]*b[k][j]
Run Code Online (Sandbox Code Playgroud)
使用位操作,我该怎么做.
我看到了对乘法常数的引用,而不是像3*2,3*4,3*8等变量.但是我如何将相同的技术应用于乘法变量呢?如果有关于此的帖子,你能指出我吗?谢谢!
我有一个以下格式的字符串:
00:aa:bb:cc:dd:ee
Run Code Online (Sandbox Code Playgroud)
我需要将其拆分并仅输出前3个字段,即00:aa:bb.我在用
s.split(':')[1:3]
Run Code Online (Sandbox Code Playgroud)
在我的计划中做这项工作,但它没有帮助.这是正确的方法吗?