python - 从 Python 中的 stdin 读取整数

标签 python python-2.7 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()

但是,我收到此错误:

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

我不确定问题是什么。

最佳答案

您正在将字符串传递给 bin() 函数:

>>> bin('10')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an index

给它一个整数:

>>> bin(10)
'0b1010'

raw_input() 结果转换为 int():

n = int(raw_input())

提示:您可以通过给字符串一个负切片步长来轻松反转字符串:

>>> 'forward'[::-1]
'drawrof'

这样你就可以将你的函数简化为:

def reversebinary():
    n = int(raw_input())
    bin_n = bin(n)[2:]
    revbin = bin_n[::-1]
    return int(revbin, 2)

甚至:

def reversebinary():
    n = int(raw_input())
    return int(bin(n)[:1:-1], 2)

关于python - 从 Python 中的 stdin 读取整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16867405/

相关文章:

python - 生成器表达式 Python

python - 如何允许群组用户修改 Odoo 中表单的特定部分?

javascript - 名称错误 : name "something" is not defined - Web App using Angular JS and Python

python - 读取多字符键盘笔划

python - 如何从 `stdin` 创建非阻塞连续读取?

haskell - 如何在具有命令行参数的Haskell程序中读取stdin?

python - 如何交换数组中的二维

python - 具有距离链接标准的sklearn凝聚聚类

python - pip 和 pip3 - 都指向 python3.5?

python - 如何按列分组并将其他列的值作为 pandas 中的列表返回?