2017年2月19日日曜日

複数の文字列を出力するときに改行でなく"-"で結合するには?

Paizaのスキルチェックをずっとやっていたのですが、タイトル通り

「複数の文字列を出力するときに改行でなく"-"で結合する」方法がなかなかわからず手こずりました


問題の内容をそのまま書くわけにいかないので例を書きます


--------
入力:4 python weiwei nyu mya
(1列目に数字、数個の文字列がスペース有りで入力される)

期待する出力:python-weiwei-nyu-mya.
(最初に入力された数字分、以下の文字列を"-"で結合し表示、最後にピリオド)
--------

そこで私が苦し紛れに書いたコードが以下です


-----
# coding: utf-8
n = input()
nn = int(n)
a =[]
for i in range(nn):
    a.append(input())
for i in range(nn):
    print(a[i],end="")
    if i < nn-1:
        print(",", end="")
    elif i == nn-1:
        print(".", end="")
-----


まぁツッコミどころ満載なのはわかりながら書いてますが、

やさしくツッコんで頂ける方がいらっしゃいましたらお願い致します

自分だけでは改良していくのがむずかしいので・・・




意図(自分で解説)
-----
n = input()
nn = int(n)
#int(input())みたいに1行にしようとしたがエラー出たので2行にしました

a =[]
for i in range(nn):
    a.append(input())
#空のリストを作ってnn個の文字列をリストに挿入

for i in range(nn):
    print(a[i],end="")
#nn回まで、リストa[0]から文字列を挿入、改行を入れないで以下に

    if i < nn-1:
        print("-", end="")
#無理やりハイフンだけ挿入して

    elif i == nn-1:
        print(".", end="")
#無理やり最後だけピリオドを打つ
-----

とりあえずテストは動いて正常ならOKということで合格をもらってますが・・・w

もっとスマートに書きたいですね

0 件のコメント:

コメントを投稿