3

アイテムのリストを要求するループを作成する方法を教えてください。毎回プロンプトが変わります。

たとえば、「最初の項目を入力してください」、「2 番目の項目を入力してください」など(または 1 番目、2 番目)

すべての項目を配列に追加する必要があります。

items = []
for i in range(5):
    item = input("Input your first thing: ")
    items.append(item)
print (items)
4

4 に答える 4

6

プロンプトのリストを使用します。

prompts = ('first', 'second', 'third', 'fourth', 'fifth')

items = []
for prompt in prompts:
    item = input("Input your {} thing: ".format(prompt))
    items.append(item)
于 2013-07-30T20:26:46.353 に答える
4

コードを少し変更する:

names = {1: "first", 2: "second", 3: "third"    # and so on...
        }

items = []

for i in range(5):
    item = input("Input your {} thing: ".format(names[i+1])
    items.append(item)
print(items)

または、より一般的なバージョン:

def getordinal(n): if str(n)[-2:] in ("11","12","13"): return "{}th".format(n) elif str(n)[-1 ] == "1": return "{}st".format(n) elif str(n)[-1] == "2": return "{}nd".format(n) elif str(n)[ -1] == "3": "{}rd".format(n) を返すそれ以外: "{}th".format(n) を返す

または、よりコンパクトな定義:

def getord(n):
    s=str(n)
    return s+("th" if s[-2:] in ("11","12","13") else ((["st","nd","rd"]+
                                                        ["th" for i in range(7)])
                                                        [int(s[-1])-1]))
于 2013-07-30T20:27:32.683 に答える
2

文字列の書式設定を使用しないのはなぜですか? の線に沿った何か

>>> for i in range(5):
        items.append(input("Enter item at position {}: ".format(i)))
于 2013-07-30T20:27:57.823 に答える
0
from collections import OrderedDict

items = OrderedDict.fromkeys(['first', 'second', 'third', 'fourth', 'fifth'])

for item in items:
    items[item] = raw_input("Input your {} item: ".format(item))


print items

出力:

Input your first item: foo
Input your second item: bar
Input your third item: baz
Input your fourth item: python
Input your fifth item: rocks

OrderedDict([('first', 'foo'), ('second', 'bar'), ('third', 'baz'), ('fourth', 'python'), ('fifth', 'rocks')])
于 2013-07-30T20:35:08.550 に答える