我两天前开始用 python 编码。在 hackerrank 中我正在解决问题,但我无法找到这段代码中的错误。 问题就在这里。
数组的左旋转操作会将数组的每个元素单元向左移动。例如,如果对数组 执行左旋转,则数组将变为 。
给定一个整数数组和一个数字 ,对数组执行左旋转。返回更新后的数组,以单行空格分隔的整数形式打印。
功能说明
在下面的编辑器中完成函数 rotLeft。它应该返回结果整数数组。
rotLeft 有以下参数:
整数数组。 一个整数,旋转次数。
输入格式
第一行包含两个以空格分隔的整数 和 ,即必须执行的左旋转的大小和次数。 第二行包含空格分隔的整数。
输出格式
打印一行空格分隔的整数,表示执行左旋转后数组的最终状态。
import math
import os
import random
import re
import sys
n , d = input().split()
a = d % n
b = n - a
l = []
while(n>0):
k = input().split()
l.append(k)
n=n-1
while(b>0):
l.append(l[0])
l.pop()
b=b-1
print(l)
它显示运行时错误。
回溯(最近一次调用最后一次): 文件“Solution.py”,第 8 行,位于 a = d % n 类型错误:并非所有参数在字符串格式化期间都已转换
input()
的结果是一个字符串,您将其拆分为两个字符串。 线路
a = d % n
正在尝试使用旧的字符串格式化语法,该语法使用百分号,因为
d
是一个字符串。 如果要使用 %
作为模运算符,需要先将 d
和 n
转换为数字。
n, d = input().split()
n, d = float(n), float(d)
n , d = input().split()
应替换为
n , d = input().split()
x, y = [int(x), int(y)]
错误是由于 x 和 y 都是字符串,需要将它们转换为整数