在python中运行以下程序时出错

在python中运行以下程序时出错,python,syntax,Python,Syntax,在python中运行以下程序时出错 data = read_data() batsman_name = first_batsman(data) def first_batsman(data=data): innings = data['innings'][0] first_innings = innings['1st innings'] deliveries = first_innings['deliveries'] first_ball =(deliveries[0] [0.1]) f

在python中运行以下程序时出错

data = read_data()
batsman_name = first_batsman(data)
def first_batsman(data=data):
    innings = data['innings'][0]
first_innings = innings['1st innings']
deliveries = first_innings['deliveries']
first_ball =(deliveries[0] [0.1])
first_batsman = first_ball['batsman']
    return(first_batsman)
print(first_batsman)
将错误获取为:

返回(第一击球员)
^
缩进错误:意外缩进

我甚至尝试了以下程序:

data = read_data()
batsman_name = first_batsman(data)
def first_batsman(data=data):
    innings = data['innings'][0]
first_innings = innings['1st innings']
deliveries = first_innings['deliveries']
first_ball =(deliveries[0] [0.1])
first_batsman = first_ball['batsman']
return(first_batsman)
print(first_batsman)
但仍然会出现以下错误:

返回(第一击球员)
SyntaxError:函数外部的“return”


解决这个问题的办法是什么?

我认为你误解了意图:

对于您的代码,您可能希望尝试以下操作:

class First_Batsman( object ) :
    def __init__( self ):
        self.innings = data['innings'][0]
        self.first_innings = innings['1st innings']
        self.deliveries = first_innings['deliveries']
        self.first_ball = deliveries[0][0.1]
        self.first_batsman = first_ball['batsman']

    def __str__(self):
        return str(self.innings,self.first_innings,self.deliveries,
                   self.first_ball,self.first_batsman)

data = read_data()
batsman_name = first_batsman( data )
print( first_batsman )

解决方案是只在函数内部使用
return
(并确保它相对于它所在的作用域正确缩进)。首先,你想在
函数内部使用的所有东西都必须缩进,包括
return()
。所以
first_initings=…
向Python发出信号,表示函数的结尾在它上面,因为它没有缩进。@Harsha你在说什么?只要在函数中,就可以从任何位置返回值。