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

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

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

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

Q&A

解決済

5回答

1095閲覧

"python3 標準入力値を計算し、半角スペースを加えて表示したい。ただし最後はスペースなしで

gyanonsh

総合スコア19

Python 3.x

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

0グッド

0クリップ

投稿2018/10/10 11:21

前提・実現したいこと

はじめまして、python 3の初心者です。
標準入力された値に、2から30までの整数をかけて値を
数字の間に半角スペースを入れ、最後のスペースは外して、
出力したいのですが、おもったようにいきません。
以下のコードを試しました。
初歩的で恐縮ですが、どなたか御指南いただけないでしょうか?
宜しくお願いします。

num=input()
for i in range(2,30):
result=int(num)*i
print(result,end="")
<出力値>
812162024283236404448525660646872768084889296100104108112116

発生している問題・エラーメッセージ

該当のソースコード

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答5

0

最適解は出てると思いますが別解ということでご参考までに。
多分何かの問題だと思われますが、今回は最後だけ空白無しという条件でしたがこういう方法も知っていると使える場面もあるかと。

また、入力も便利な方法があるので困った時には参考にしてみてください。
プログラミング(競プロ)に便利な Python3 用法集 入力編

python

1num = int(input()) 2for i in range(2, 31): 3 result = num * i 4 if i < 30: 5 print(result, end = " ") 6 else: 7 print(result, end = "") 8
4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120

投稿2018/10/10 11:54

opyon

総合スコア1009

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

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

gyanonsh

2018/10/10 11:58

opyonさま ありがとうございました!  リンクも張って頂き感謝です。 そのやさしさをバネに精進します!!
guest

0

python3

1File Edit Options Buffers Tools Python Help 2num = int(input()) 3 4ans = "" 5for i in range(2, 31): 6 ans += " " + str(i + num) 7 8print("[" + ans[1:] + "]")

実行例
イメージ説明

[ ] で囲ってだしてますが、これを外せば要求に沿ったものになります。

SPACE + 計算結果 を次々と連結していき、最後に 先頭の SPACE より後ろを print しています。

計算結果 + SPACE を次々と連結していき、最後に 末尾 SPACE より前を print するという方法でも可能です。

投稿2018/10/10 12:26

katoy

総合スコア22324

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

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

0

Pythonなど不要。そう、シェル芸ならね!

bash

1$ echo 4|(read n;echo $n*{2..30})|xargs -I@ -n1 sh -c 'echo $((@))'|xargs 28 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120

投稿2018/10/10 11:51

hichon

総合スコア5737

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

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

gyanonsh

2018/10/10 11:59

hichonさま シェルでですか・・。なるほどですね! アドバイスありがとうございました!
guest

0

まず、num = input()
だとnumが文字列になってしまうので、初めから
num = int(input())
にするのがいいと思います。ここに2から30までの整数をかけて行くわけですね。

次にrange(2,30)だと、2から29までの整数になってしまいます。range(2,31)にしましょう。range(m,n)はm以上n未満という感じです。
変な仕様にも思いますが、n - mというのが何回forを回るのかということに対応しているというメリットがあります。2以上30以下の整数は29個ですが、これが31 - 2に対応しています。

for文の中の変数がnumからvalueに変わっているような気がしますが、写し間違いですかね?numにiをかけて行くので、num = num*iとか、num *= iとかすれば良いと思います。

最後にnumの値を、各桁の間にスペースを入れて出力するとのことですが、方法はいろいろですが、とりあえず文字列に変換して見ます。
num = str(num)
スペースを挿入して行くために、これをリストにしましょう
num = list(str)
こうすると例えばもしnum = 1235だったら、num = ['1', '2', '3', '5']になります。
最後にこれらの数字を半角スペースを挟みつつくっつけて行きます。これはpythonでは' '.join(リスト)として実行できます。
以上をまとめると最後の出力では、

python

1print(' '.join(list(str(num))))

とすれば良いでしょう。

投稿2018/10/10 11:41

moch

総合スコア122

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

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

moch

2018/10/10 11:42

ん、なんか質問内容を勘違いしているみたいです。すみません。
gyanonsh

2018/10/10 12:23

mochさま ご丁寧にありがとうございました。 .join(リスト)  学びました!
guest

0

ベストアンサー

『4』を入力されたのですね。

数字の間に半角スペースを入れ、最後のスペースは外して、出力したい

リストを作って、最後にどびゃっと出力するのが楽です。

Python

1num = int(input()) 2 3dst = [] 4for i in range(2, 31): # rangeは start以上stop未満 を返す 5 dst.append(num * i) 6 7print(*dst)

実行結果 Wandbox

8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120

コードの書き方について

teratailには、コードを見やすく表示する機能があります。
質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
Python
特にPythonの場合、インデントが崩れるとコードの意味が変わってしまいます。

投稿2018/10/10 11:28

編集2018/10/10 11:31
LouiS0616

総合スコア35658

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

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

opyon

2018/10/10 11:40

print(*dst) どびゃっと! φ(..)メモメモ
moch

2018/10/10 11:52

print(*dst)いいですね。
gyanonsh

2018/10/10 12:00

LouiS0616さま 素人で困り果てていたところ、 即答頂き、涙涙です! もっと、勉強します! 本当にありがとうございました!
gyanonsh

2018/10/10 12:11

ちなみにですが、print(*dst)の引数の"*"は何を意味するのでしょうか??
LouiS0616

2018/10/10 12:16 編集

シーケンスのアンパックと呼ばれます。 例えばdstの要素が3つある場合、print(dst[0], dst[1], dst[2]) と同じです。 Pythonの * にはいろいろな役割があるので、以前まとめたことがあります。 --- Qiita - Python3.xのアスタリスク逆引き https://qiita.com/LouiS0616/items/1bbe0a9bb93054f6c380 --- 手前味噌ですが、よろしければご活用ください。
gyanonsh

2018/10/10 12:28

なるほど!これは便利っすね! 是非、活用します。 また、ご指導の程宜しくお願いしますm(_ _)m ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問