小编Phi*_*tis的帖子

从Python中的stdin读取整数

我有以下代码片段,我从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)

我不确定问题是什么.

python stdin python-2.7

6
推荐指数
2
解决办法
3万
查看次数

在D中逐步完成范围

有没有办法在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.

iteration d range

3
推荐指数
1
解决办法
128
查看次数

覆盖D类中的toString()

我试图在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)

我假设字符串格式化在返回时不会以这种方式工作.

d class tostring

3
推荐指数
1
解决办法
1003
查看次数

从命令行重定向到D程序

我想将.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程序中吗?

terminal d pipe io-redirection

1
推荐指数
2
解决办法
99
查看次数

标签 统计

d ×3

class ×1

io-redirection ×1

iteration ×1

pipe ×1

python ×1

python-2.7 ×1

range ×1

stdin ×1

terminal ×1

tostring ×1