0

一度に 1 つの翻訳ペアを入力できるプログラムを作成し (例: friend = kalyardi)、入力した一意の行数を通知します。重複を数えるべきではありません。空白行を入力すると、プログラムは追加の単語の入力を求めるのをやめ、知っている固有の翻訳の数を出力します。

例えば:

Word: friend = kalyardi
Word: happy = jipa-jipa
Word: bird = jirripirdi
Word: friend = kalyardi
Word: 
You know 3 unique word translation(s)!

Words: bandicoot = jarlku
Word: bandicoot = jarlku
Word: dog = jarntu
Word: dog = kuna-palya
Word: kangaroo = kanyarla
Word: cockatoo = ngaarnkamarda
Word: 
You know 5 unique word translation(s)!

1 つの単語に複数の (または類似した) 翻訳が含まれる場合があります。この場合、一意の行数をカウントするだけで、各翻訳を個別にカウントする必要があります。

私のプログラムの読み取り -

translation = input("Word: ")
count = 0
previous = []
while translation != "":
    if translation not in previous:
        count = (count - 1)
        translation = input("Word: ")
    else:
        break
print("You know", count, "unique translation(s)!")

プログラムを実行すると、実行されます。

Word: bandicoot = jarlku
Word: bandicoot = jarlku
Word: dog = jarntu
Word: dog = kuna-palya
Word: kangaroo = kanyarla
Word: cockatoo = ngaarnkamarda
Word: 
You know -6 unique translation(s)!

私のプログラムが何年も動かなくなってしまったのを修正するにはどうすればいいですか!!!!!!!

4

3 に答える 3

3
translation = input("Word: ")
previous = []
while translation != "":
    source = translation.split()[0].strip()
    if source not in previous:
        previous.append (source)
    translation = input("Word: ")
print("You know", len(previous), "unique translation(s)!")

Ashwini Chaudhary がコメントで提案した、インプットを得るためのもう 1 つのクールな方法です。

previous = []
for translation in iter(input, ""):
    source = translation.split()[0].strip()
    if source not in previous:
        previous.append (source)
print("You know", len(previous), "unique translation(s)!")

編集:文字列全体を一致させる必要がある場合は、

previous = []
for translation in iter(input, ""):
    if translation not in previous:
        previous.append (source)
print("You know", len(previous), "unique translation(s)!")

出力

~$ python3 Test.py 
Word: friend = kalyardi
Word: happy = jipa-jipa
Word: bird = jirripirdi
Word: friend = kalyardi
Word: 
You know 3 unique translation(s)!
于 2013-09-02T10:10:50.500 に答える
1

これを試して

translation = input("Word: ")
count = 0
previous = []
while translation != "":
    if translation not in previous:
        count = (count - 1)
        previous.append(translation)
    translation = input("Word: ")

print("You know", count, "unique translation(s)!")
于 2013-09-02T10:21:28.943 に答える
0

1) で行を移動しinput、ループの最後のステートメントにします。

2) if ブロックでは、ループから抜け出さず、新しい翻訳をpreviousリストに追加します。

3) 最後に印刷len(previous)します。count変数は必要ありません。

于 2013-09-02T10:11:39.633 に答える