4

私が取り組んでいる問題

だから私は「オーストラリア」の投票アプリを作成していて、入力プロンプトに対する創造的な解決策を探しています。

基本的にユーザーは何人かを入力し、最大 1000 票または w/e で送信します。

3 つの候補があると仮定すると、入力プロンプトは次のようになります。

ballot = raw_input('1 for %s: 2 for %s: 3 for %s: ') % (cand_list[0], cand_list[1], cand_list[2])

しかし、私が本当に考えたいのは、動的なプロンプトです (ユーザーが 5、10、w/e 候補の数を入力すると仮定します)

投票の割り当てと印刷を分離するか、完全に分離して投票文字列を作成して渡すことを検討しましたが(何らかの文字列ビルダー関数を作成できると仮定して)、他のアプローチを見てみたいです。% 書式設定をエスケープする必要があるかどうかを確認するために、まだいじっています。

Python Stringbuilder(sort of)および その他の文字列連結

4

3 に答える 3

3

文字列の書式設定を使用したこのようなものstr.joinenumerate:

>>> candidates = ['foo', 'bar', 'spam']
>>> print ' : '.join('{} for {}'.format(i, c) for i, c in enumerate(candidates, 1))
1 for foo : 2 for bar : 3 for spam

>>> candidates = ['foo', 'bar', 'spam', 'python', 'guido']
>>> print ' : '.join('{} for {}'.format(i, c) for i, c in enumerate(candidates, 1))
1 for foo : 2 for bar : 3 for spam : 4 for python : 5 for guido
于 2013-11-08T18:22:38.343 に答える
0

フォーマット文字列を段階的に個別に構築します。

inner_format_string = "{num} for %s: "
full_format_string = " ".join(inner_format_string.format(num=i) for i in xrange(1, len(cand_list) + 1))

ballot = raw_input(full_format_string % tuple(cand_list))
于 2013-11-08T18:18:50.590 に答える
0
canidates = ["Frank","Bill","Joe","Suzy"]
raw_input(", ".join("Enter %d For %s"%(num,canidate) for num,canidate in enumerate(canidates,1)))

多分

于 2013-11-08T18:19:33.023 に答える