python中的这个旋转程序有什么问题?

python中的这个旋转程序有什么问题?,python,rotation,Python,Rotation,上下文:(谜机)我想做的是让这段代码运行,这样每次序列经过第一个轮子时,第一个轮子都会旋转 问题是,我从互联网上找到了如何使用下面的this序列进行旋转,但当我改变周围的变量时,它就不起作用了,这样就可以进行更多的自动匹配。它在if功能之后会出现错误消息。我已经检查并更改了变量的名称,以使它们更简单,并减少间距。无法找出代码中有什么不起作用。是因为rotate函数不能使用变量还是什么 import collections theinput=raw_input('enter letter') x

上下文:(谜机)我想做的是让这段代码运行,这样每次序列经过第一个轮子时,第一个轮子都会旋转

问题是,我从互联网上找到了如何使用下面的this序列进行旋转,但当我改变周围的变量时,它就不起作用了,这样就可以进行更多的自动匹配。它在
if
功能之后会出现错误消息。我已经检查并更改了变量的名称,以使它们更简单,并减少间距。无法找出代码中有什么不起作用。是因为rotate函数不能使用变量还是什么

import collections

theinput=raw_input('enter letter')
x=0



w=collections.ww=([1,2,3,4,5])


if theinput == 'a':
    w.rotate(x)
    a = w[0]
    x= x+1
    w.rotate(x)
 print a

谢谢

据我所知,在collections模块中没有像ww这样的变量,您可能想要使用的容器是

在上下文中,deque与列表非常相似,但它的优化方式使您可以轻松(高效)添加和删除两端的项,这比内置列表的效率稍高。deques还提供了一些列表中找不到的其他方法,如rotate。虽然使用组合了基本操作的列表做同样的事情很容易,但它们并没有针对这类事情进行优化,而deques是。但对于像模拟谜一样简单的机器,坚持使用列表不会对性能产生太大影响

我猜你是想做一些事情,比如:

import collections
w = collections.deque([1, 2, 3, 4, 5])
print "Deque state is ", w
print "First item in deque is", w[0]
w.rotate(1)
print "Deque state after rotation is ", w
print "First item in deque is", w[0]
这应该打印出来

Deque state is  deque([1, 2, 3, 4, 5])
First item in deque is 1 Deque
state after rotation is  deque([5, 1, 2, 3, 4])
First item in deque is 5
使用负数作为“旋转”的参数,以使旋转方向相反

下面是一个仅使用内置列表的替代实现

w = [1, 2, 3, 4, 5]
print "List state is ", w
print "First item in list is", w[0]
x = 1 # x is rotation
w0 = w[:-x]
w = w[-x:]
w.extend(w0)
print "List state after rotation is ", w
print "First item in list is", w[0]

您可能想要使用的容器是,据我所知,collections模块中没有ww这样的变量

在上下文中,deque与列表非常相似,但它的优化方式使您可以轻松(高效)添加和删除两端的项,这比内置列表的效率稍高。deques还提供了一些列表中找不到的其他方法,如rotate。虽然使用组合了基本操作的列表做同样的事情很容易,但它们并没有针对这类事情进行优化,而deques是。但对于像模拟谜一样简单的机器,坚持使用列表不会对性能产生太大影响

我猜你是想做一些事情,比如:

import collections
w = collections.deque([1, 2, 3, 4, 5])
print "Deque state is ", w
print "First item in deque is", w[0]
w.rotate(1)
print "Deque state after rotation is ", w
print "First item in deque is", w[0]
这应该打印出来

Deque state is  deque([1, 2, 3, 4, 5])
First item in deque is 1 Deque
state after rotation is  deque([5, 1, 2, 3, 4])
First item in deque is 5
使用负数作为“旋转”的参数,以使旋转方向相反

下面是一个仅使用内置列表的替代实现

w = [1, 2, 3, 4, 5]
print "List state is ", w
print "First item in list is", w[0]
x = 1 # x is rotation
w0 = w[:-x]
w = w[-x:]
w.extend(w0)
print "List state after rotation is ", w
print "First item in list is", w[0]

@MarkByers在模块中设置一个值没有什么错(即使这很奇怪)很确定在
w=collections.ww=([1,2,3,4,5])
行上有一个输入错误。。。还有一个额外的“
=
”。在“打印a”之前应该有一个空格吗?你期望的输出是什么?你的代码充满了错误。哦,对了,他正在分配给它。。。奇怪的我没有注意到第二个
=
@MarkByers在模块中设置一个值没有什么错(即使这很奇怪),我很确定在
w=collections.ww=([1,2,3,4,5])行上有一个拼写错误。。。还有一个额外的“
=
”。在“打印a”之前应该有一个空格吗?你期望的输出是什么?你的代码充满了错误。哦,对了,他正在分配给它。。。奇怪的我没有注意到第二个
=
。好的,从我看到的示例来看,“deque”出现在列表的前面,所以我认为它是一个名称/值。所以非常感谢!因为
collections.deque
是要构造的类的名称,列表是传递给其构造函数的参数(这就是为什么还有括号)。老实说,您应该先了解更多关于该语言如何工作的信息……好吧,从我看到的示例来看,“deque”出现在列表的前面,所以我认为它是一个名称/值。所以非常感谢!因为
collections.deque
是要构造的类的名称,列表是传递给其构造函数的参数(这就是为什么还有括号)。老实说,你应该先了解更多关于语言是如何工作的。。。