有什么办法可以消除这个错误吗? [重复]

问题描述 投票:0回答:2

我两天前开始用 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 类型错误:并非所有参数在字符串格式化期间都已转换

python input
2个回答
2
投票

input()
的结果是一个字符串,您将其拆分为两个字符串。 线路

a = d % n

正在尝试使用旧的字符串格式化语法,该语法使用百分号,因为

d
是一个字符串。 如果要使用
%
作为模运算符,需要先将
d
n
转换为数字。

n, d = input().split()
n, d = float(n), float(d)

0
投票
n , d = input().split()

应替换为

n , d = input().split()
x, y = [int(x), int(y)]

错误是由于 x 和 y 都是字符串,需要将它们转换为整数

© www.soinside.com 2019 - 2024. All rights reserved.