-1

defbeforePeriod(s)で始まるPython関数を作成するにはどうすればよいですか。これは、パラメーターである文字列sの最初のピリオドの前にある部分文字列を返します。文字列にはピリオドが含まれています。したがって、sが「abc2.3ty」の場合、私の関数は「abc2」を返します。

4

3 に答える 3

1
import re
def beforePeriod(s):
    m = re.match('(.*)\..*',s)
    if m:
       return m.groups()[0]

また

def beforePeriod(s):
   return s[s:s.index('.')]

また

   def beforePeriod(s):
       return s.split('.')[0]
于 2012-12-19T18:35:31.410 に答える
0

docs.python.org のセクション5.6.1を見ると、関数が表示される文字列メソッドstr.find():

str.find(sub[, start[, end]])
サブストリング sub が見つかった文字列内の最小インデックスを返します ... find() メソッドは、sub の位置を知る必要がある場合にのみ使用してください。

find()次の例に示すように使用できます。これは、ipython インタープリターのトランスクリプトから抜粋したものです。

In [2]: def defbeforePeriod(s):
   ...:     return s[:s.find('.')]
   ...: 

In [3]: defbeforePeriod('abc2.3ty')
Out[3]: 'abc2'

In [4]: defbeforePeriod('abc2.3ty.zeta')
Out[4]: 'abc2'
于 2012-12-19T18:40:04.147 に答える
-1

ファイル名を操作しようとしている場合はos.path、特にを参照してくださいos.path.splitext()

于 2012-12-19T19:05:04.650 に答える