从 Python 中的 stdin 读取整数 [英] Reading in integer from stdin in Python
本文介绍了从 Python 中的 stdin 读取整数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下一段代码,我从标准输入输入一个整数 n,将其转换为二进制,反转二进制字符串,然后转换回整数并输出.
导入系统def反向二进制():n = str(raw_input())bin_n = bin(n)[2:]revbin = "".join(list(reversed(bin_n)))返回 int(str(revbin),2)反向二进制()
但是,我收到此错误:
回溯(最近一次调用最后一次): 中的文件reversebinary.py",第 18 行反向二进制()文件reversebinary.py",第 14 行,反向二进制bin_n = bin(n)[2:]类型错误:str"对象不能解释为索引
我不确定是什么问题.
解决方案
您正在向 bin()
函数传递一个字符串:
改为给它一个整数:
<预><代码>>>>垃圾箱(10)'0b1010'通过将 raw_input()
结果转换为 int()
:
n = int(raw_input())
提示:您可以通过给它一个负切片步幅来轻松反转字符串:
<预><代码>>>>'前进'[::-1]'抽屉'因此您可以将函数简化为:
def reversebinary():n = int(raw_input())bin_n = bin(n)[2:]revbin = bin_n[::-1]返回整数(revbin,2)
甚至:
def reversebinary():n = int(raw_input())返回 int(bin(n)[:1:-1], 2)
I have the following piece of code where I take in an integer n from stdin, convert it to binary, reverse the binary string, then convert back to integer and output it.
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()
However, I'm getting this error:
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
I'm unsure what the problem is.
解决方案
You are passing a string to the bin()
function:
>>> bin('10')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an index
Give it a integer instead:
>>> bin(10)
'0b1010'
by turning the raw_input()
result to int()
:
n = int(raw_input())
Tip: you can easily reverse a string by giving it a negative slice stride:
>>> 'forward'[::-1]
'drawrof'
so you can simplify your function to:
def reversebinary():
n = int(raw_input())
bin_n = bin(n)[2:]
revbin = bin_n[::-1]
return int(revbin, 2)
or even:
def reversebinary():
n = int(raw_input())
return int(bin(n)[:1:-1], 2)
这篇关于从 Python 中的 stdin 读取整数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文