0

私はPythonを学ぼうとして以来、最初のプロジェクトとしてBeautifulSoupを使用してサッカー解説スクレーパーを作成しています。

基本的に、各目標ステートメントについて、それは目標、オウンゴール、またはペナルティのいずれかである可能性があります。これらをデータベースに個別に記録する必要があります。

発生する問題は、ゴールステートメントに「ペナルティエリア」または「ペナルティボックス」が含まれていることがあるため、これらの機会をペナルティではなくゴールとして記録する必要があることです。

ネストされたステートメントの負荷で何かをモックアップしましたが、それは地獄のように汚れていました。

もともと私はの線に沿って何かを持っていました

if goal in statement:
   if 'own goal' in statement:
      {record own goal in db}
   elif 'penalty' in statement:
      if not 'penalty area' in statement:
          if not 'penalty box' in statement:
              {record penalty in db}
   else:
      {record goal in db}

私はコードを持っていないので、それを一緒に嘲笑しました。これを達成する唯一の方法ですか?

4

2 に答える 2

0

多分これはより良いです:

   if 'goal' in statement:
       if 'own goal' in statement:
           {record own goal in db}
       elif not('penalty area' in statement or 'penalty box' in statement):
           {record goal in db}
       elif 'penalty' in statement:
           {record penalty in db}
       else:
           {record goal in db}
于 2013-02-19T22:12:58.443 に答える
0

それをきれいにするために、いくつかの論理ステートメントを組み合わせることができるかもしれませんが、それ以外はあまり改善されていません.

if 'goal' in statement:
    if 'own goal' in statement:
        {record own goal}
    elif 'penalty' in statement and not('penalty area' in statement) and not('penalty box' in statement):
        {record penalty}
    else:
        {record goal}
于 2013-02-19T22:16:36.493 に答える