Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 索引器:Topcoder提交中列表索引超出范围_Python_List_Indexing_Submission - Fatal编程技术网

Python 索引器:Topcoder提交中列表索引超出范围

Python 索引器:Topcoder提交中列表索引超出范围,python,list,indexing,submission,Python,List,Indexing,Submission,当我在中运行代码时,它显示出一个错误:IndexError:list index超出范围。然而,该代码在Python空闲环境中工作得非常好。谁能告诉我哪里出了问题 问题信息: 定义类别: 干酪磨砂法:总面积法 参数:整数、整数、整数、整数 返回:整数方法 签名:def总面积(自身、A、B、C、S): 例子 0)1 3 2 返回:0 此块的一个尺寸是1。不管怎样 我们切割它,每一块都有一个等于1的尺寸。当S=2时,这个 这意味着生产一个好的切片是不可能的。因此,最大 良好切片的总表面积为0 导入系

当我在中运行代码时,它显示出一个错误:IndexError:list index超出范围。然而,该代码在Python空闲环境中工作得非常好。谁能告诉我哪里出了问题

问题信息:

定义类别:

干酪磨砂法:总面积法

参数:整数、整数、整数、整数

返回:整数方法

签名:def总面积(自身、A、B、C、S):

例子

0)1 3 2

返回:0

此块的一个尺寸是1。不管怎样 我们切割它,每一块都有一个等于1的尺寸。当S=2时,这个 这意味着生产一个好的切片是不可能的。因此,最大 良好切片的总表面积为0

导入系统 总数=0 data=sys.stdin.read().split() x、 y,z,s=int(数据[0]),int(数据[1]),int(数据[2]),int(数据[3])) 如果min(x,y,z)=s: 打印x*y*z/s elif最小值(x,y,z)s: 行=[x,y,z] 当最大(线)>=2*s时: 面积=1 最大线=最大(线) line.pop(line.index(maxline)) 对于行中的行: 面积=面积*线 总面积+=面积 行。追加(maxline-s) 面积=1 最小线=最小(线) 行.pop(行.索引(minline)) 对于行中的行: 面积=面积*线 总面积+=面积 打印总数
由于topcoder提供的测试输入中出现意外的EOF,您的
数据为空,因此出现索引错误。您可以尝试实现代码来处理输入之间的EOF异常。

我不知道,这段代码如何在空闲状态下完美工作。split()函数将返回包含一项的列表。Topcoder可能对此问题的验证测试有一些问题。例如,输入将为“5 2”,split()函数将返回['5','5','2']。您可以在获取输入时实现异常处理
import sys
total=0
data=sys.stdin.read().split()
x,y,z,s=int(data[0]),int(data[1]),int(data[2]),int(data[3])

if min(x,y,z)==s:
    print x*y*z/s

elif min(x,y,z)<s:
    print 0

elif max(x,y,z)>s:
    lines=[x,y,z]
    while max(lines)>=2*s:
        area=1
        maxline=max(lines)
        lines.pop(lines.index(maxline))

        for line in lines:
            area=area*line
        total+=area
        lines.append(maxline-s)
    area=1
    minline=min(lines)
    lines.pop(lines.index(minline))
    for line in lines:
        area=area*line
    total+=area
    print total