我有以下代码片段,我从stdin中取一个整数n,将其转换为二进制,反转二进制字符串,然后转换回整数并输出它.
import sys
def reversebinary():
n = str(raw_input())
bin_n = bin(n)[2:]
revbin = "".join(list(reversed(bin_n)))
return int(str(revbin),2)
reversebinary()
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
Traceback (most recent call last):
File "reversebinary.py", line 18, in <module>
reversebinary()
File "reversebinary.py", line 14, in reversebinary
bin_n = bin(n)[2:]
TypeError: 'str' object cannot be interpreted as an index
Run Code Online (Sandbox Code Playgroud)
我不确定问题是什么.
有没有办法在D范围内创建一个步骤?例如,在python中,范围(1,10,2)给了我
[1, 3, 5, 7, 9]
Run Code Online (Sandbox Code Playgroud)
所有赔率都在1 ... 10之间
有没有办法在D中使用foreach执行此操作?
foreach(x; 1 .. 10) {
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用iota(开始,结束,步骤),但我也想在最开始添加一个int,我不知道如何将类型Result转换为int.
我试图在D语言中覆盖类中的toString方法.
override string toString() {
auto a = to!string(a);
auto b = to!string(b);
return "%s / %s", a, b;
}
Run Code Online (Sandbox Code Playgroud)
然后我在main()中创建一个名为foo的对象,然后执行:
writeln(foo);
Run Code Online (Sandbox Code Playgroud)
假设a = 1且b = 2,我想打印出这个字符串文字:
1 / 2
Run Code Online (Sandbox Code Playgroud)
相反,我只打印出最后一个数字
2
Run Code Online (Sandbox Code Playgroud)
我假设字符串格式化在返回时不会以这种方式工作.
我想将.txt文件从命令行重定向到用D编写的exetuable.
$ ./myprogram < data.txt
Run Code Online (Sandbox Code Playgroud)
此文本文件由我要打印到屏幕的数字组成.到目前为止,我的程序包括:
import std.stdio, std.file;
void main(string[] args) {
string file = args[2];
writeln(read(file));
}
Run Code Online (Sandbox Code Playgroud)
但这不正确; 有人可以解释一下重定向的工作方式以及如何将数据传输到我的D程序中吗?