Python:如何将移位输入打印为整数?
Python: How does one print bitshifted inputs as an integer?
我正在尝试创建一个移位教程脚本,它接受用户输入并打印结果,但它一直返回以下错误
DATASET NUMBER: 0
Traceback (most recent call last):
File "./prog.py", line 21, in <module>
TypeError: unsupported operand type(s) for >>: 'str' and 'int'
这是我目前使用的代码:
import sys
input = []
for line in sys.stdin:
input.append(line)
a = input[0]
b = input[1]
c = input[2]
a >> 4
print(a)
b << 2
print(b)
c << 1
print(c)
是打印部分工作不正常。我认为这要么是语法错误,要么是整数转换错误,我对此没有 100% 的信心。是我的语法错误还是我遗漏了一些简单的东西?
input = []
for line in sys.stdin:
input.append(line)
所以 input
包含 str
类型的变量,对吗?您不能对 str
ing 进行字节移位,您必须先将其转换为整数:
input = list(map(int, input)) # This converts all the elements to integers
我建议使用结束下划线来防止您的程序覆盖 built-in 函数 input
。
您还应注意,您并未将移位后的值重新分配给变量,因此您 print
输入的是与输入中相同的值。
a = a >> 4 # Do this...
a >>= 4 # ...maybe this...
a >> 4 # ...but for sure not this
我正在尝试创建一个移位教程脚本,它接受用户输入并打印结果,但它一直返回以下错误
DATASET NUMBER: 0
Traceback (most recent call last):
File "./prog.py", line 21, in <module>
TypeError: unsupported operand type(s) for >>: 'str' and 'int'
这是我目前使用的代码:
import sys
input = []
for line in sys.stdin:
input.append(line)
a = input[0]
b = input[1]
c = input[2]
a >> 4
print(a)
b << 2
print(b)
c << 1
print(c)
是打印部分工作不正常。我认为这要么是语法错误,要么是整数转换错误,我对此没有 100% 的信心。是我的语法错误还是我遗漏了一些简单的东西?
input = []
for line in sys.stdin:
input.append(line)
所以 input
包含 str
类型的变量,对吗?您不能对 str
ing 进行字节移位,您必须先将其转换为整数:
input = list(map(int, input)) # This converts all the elements to integers
我建议使用结束下划线来防止您的程序覆盖 built-in 函数 input
。
您还应注意,您并未将移位后的值重新分配给变量,因此您 print
输入的是与输入中相同的值。
a = a >> 4 # Do this...
a >>= 4 # ...maybe this...
a >> 4 # ...but for sure not this