質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

3745閲覧

Python3 標準入力と文字列の結合

Alter_9524

総合スコア22

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/10/02 08:52

編集2018/10/02 08:58

Python3で標準入力から受け取ったデータを結合する際なんですが、

①入力画面で一行目に入力するデータ数を打ち込み、二行目以降にデータを入力します

入力 4 a b c d

②受け取ったデータを「Data」という文字列と結合させて以下のように出力したい場合、どういったコードにすればよいでしょうか?

出力 Data a,b,c,d.

※1 入力するデータ数は可変
※2 データは「カンマ,」区切りで出力しますが、最後だけ「ピリオド.」です

試したこと

コード data = "Date " num = int(input()) array = [] for i in range(num): number = input() array.append(name) for j in array: print(data,end="") print(j+",",end="")

一行目に入力されたデータ数分の行をリストに格納し、文字列との結合、また「カンマ,」による区切りを入れました。
しかし最後だけ「ピリオド.」にする方法が思いつきません。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

出力したいものがリストに既に入っているなら、printにアンパックして渡すのが楽です。
区切り文字はキーワード引数sepで、末端はendで指定します。

Python

1>>> lst = [1, 2, 3] 2>>> print(*lst, sep=',', end='.\n') 31,2,3. 4>>>

リストの要素の型が文字列ならstr.joinでも可。

Python

1>>> lst = list('abc') 2>>> lst 3['a', 'b', 'c'] 4>>> 5>>> ','.join(lst) 6'a,b,c' 7>>> print('Data', ','.join(lst), end='.\n') 8Data a,b,c.

Python3.6以降ならこんなふうにも書けます。簡潔です。

Python

1>>> print(f'Data: {",".join(lst)}.') 2Data: a,b,c.

投稿2018/10/02 08:56

編集2018/10/02 15:36
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Alter_9524

2018/10/02 09:18

解決しました。ありがとうございます! sepというものを使えばよかったんですね。
Alter_9524

2018/10/05 01:51

#リストの並べ方 list = [1,2,3] print(*list,sep="",end="") sepで要素間の区切りを指定、endで最後の要素のあとに来るものを指定
guest

0

@LouiS0616さんの回答がスマートですが。

敢えて元のfor文を動くようにするならという主旨ですが、
for文を理解するという意味で使えるようにしておいたほうが良いかと。

for文に入る前に"Date "を出力しておき
for文でループさせて文字と","を出力
for文を出た後に"."を出力する

data = "Date " num = int(input()) array = [] for i in range(num): number = input() array.append(number) arr_len = len(array) print(data,end="") #先頭 for j in range(arr_len): print(array[j],end="") if j < arr_len - 1: print(",",end="")#最後以外 print(".") #末尾

投稿2018/10/02 09:26

opyon

総合スコア1009

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

python

1>>> lst = list("abc") 2>>> print("Data", ",".join(lst) + ".") 3Data a,b,c.

投稿2018/10/02 11:58

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問