-1

ユーザーに 2 つの文字列を要求し、最初の文字列からの 1 つの単語と 2 番目の文字列からの 1 つの単語を交互に新しい文字列を生成するプログラムを作成する必要があります。ここで、「単語」は上記のようにスペースまたは句読点の間の任意のものとして定義されます。1 つの文字列が単語を使い果たしたら、残りの長い文字列を使用します。(たとえば、'This. is. a, test' と 'My mom make a mean Pasta source' は、'This My is mom a makes test a mean Pasta source' を生成します)

私はプログラミングの方法を学ぼうとしていますが、現在持っているものはまったく機能していません。

4

2 に答える 2

0

Pythonのitertoolsモジュールのドキュメントを確認してください。特に関数itertools.izip_longest(投稿している正確な問題を解決します)。

ドキュメントから:

itertools.izip_longest(* iterables [、fillvalue])各イテレータから要素を集約するイテレータを作成します。イテラブルの長さが不均一な場合、欠落している値はfillvalueで埋められます。反復は、最も長い反復がなくなるまで続きます。

iterableの1つが潜在的に無限である場合、izip_longest()関数は、呼び出しの数を制限するもの(たとえば、islice()またはtakewhile())でラップする必要があります。指定しない場合、fillvalueのデフォルトはNoneです。

于 2013-01-26T04:47:57.967 に答える
0

このrandomモジュールは、これを支援する優れたモジュールです。

モジュールを使用してstring、すべての句読点を削除します。

import random
import string
sentence_one = raw_input('Enter the first sentence! ').translate(None, string.punctuation)
sentence_two = raw_input('Enter the second sentence! ').translate(None, string.punctuation)
mylist1 = sentence_one.split()
mylist2 = sentence_two.split()
mylist3 = mylist1 + mylist2
random.shuffle(mylist3)
randomsentence = ' '.join(mylist3)
print randomsentence

実行時:

Enter the first sentence! one, two, three
Enter the second sentence! four! five! six!
three two four six one five # Well it could be anything really, this is randomised.
于 2013-01-26T04:51:27.523 に答える