回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在实现我目前为止在创建一个真正的定义程序方面遇到了困难。</p>
<pre><code>def left():
listL = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
k=4
right = listL[k::]
left = listL[:k:]
print(right + left)
def right():
listL = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
k=len(listL)-4
right = listL[k::]
left = listL[:k:]
print(right + left)
</code></pre>
<p>我的代码根据向左或向右移动k在哪里重新创建原始列表,在本例中是4。但是我的练习题是。。。</p>
<pre><code>Given a list of N numbers, write a function to shift the numbers circularly by some integer k (where k < N). The function should take the list and k as arguments and return the shifted list.
a) Write a function that assumes the shifting is to the left. It should not print anything.
b) Write a function that takes a third argument that specifies shifting left or right. It should not print anything. Perform whatever error-checking you consider necessary.
c) Write a main() function that calls the above functions. It should print the lists both before and after shifting. Perform whatever error-checking you consider necessary.
</code></pre>
<p>我对A部分很满意,但我不知道如何构建B部分和C部分来完全复制问题。</p>
<p>溶液样品运行:</p>
<pre><code>Sample run
>>> ================================ RESTART ================================
>>>
original list: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
shifted by 4, to the left: [4, 5, 6, 7, 8, 9, 0, 1, 2, 3]
shifted by 4, to the right: [6, 7, 8, 9, 0, 1, 2, 3, 4, 5]
</code></pre>
<p>对于我应该如何解决b和c部分的任何建议,将不胜感激!:)</p>