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

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

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

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4267閲覧

python 一行空白の空け方

revoiot

総合スコア188

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/01/22 03:04

ある問題を悩んでも悩んでも解けなかったため、ここで質問させていただくことにしました。問題は以下になります。

入力は標準入力にて以下のフォーマットで与えられます。

a_0 a_1 a_2 ... a_9
s
t

1 行目には、変換対応表が与えられます。暗号化の際、i は a_i に変換されます。復号の時は、a_i は i に変換されます。
2 行目には暗号化すべきであるか復号すべきであるかを表す文字列 s が与えられます。s は "encode" もしくは "decode" です。"encode" の場合は暗号化、"decode" の場合は復号してください。
3 行目には暗号化もしくは復号すべき文字列 t が与えられます。
入力は合計で 3 行となり、入力値最終行の末尾に改行が1つ入ります。

入力例1

入力
8 1 4 7 2 3 9 5 6 0
encode
257

出力
435

入力例2

入力
8 3 7 1 2 5 6 0 9 4
decode
0728

出力
7240イメージ説明

自分なりに解いたものが、下の式になります。

まず私はディクショナリを使うことで、X[x]のように表記した際、勝手に数値が変換されて、代入されるようにしました。

ここで、一つの質問をさせていただきます。

標準入力がされる際、

A = 8 1 2 3 ...

F = 123... となります。(数字はランダム)

Aは一文字空白で入力されるのにも関わらず、Fは空白がありません。

実際にforループを使って各々出力した際は

Aは
8
1
2
3
と入力されますが、
Fは123と入力されてしまいます。

私は、AのようにFも出力させたいのですが、どのようにして、Fを一文字空白をあけさせればいいのかわかりません。大変恐れ入りますが、どなたかご教授願えませんでしょうか?

最後に、下記が私が書いたコードになります。
今回、ディクショナリを用いていますが、これが最善策な気がしません。より案があれば、そちらも教えていただきたいです。

X={0:8,1:1,2:4,3:7,4:2,5:3,6:9,7:5,8:6,9:0}
Y={8:0,1:1,4:2,7:3,2:4,3:5,9:6,5:7,6:8,0:9}
A = [int(i) for i in input().split()]
C = input()
F = [int(i) for i in input().split()]
for i in F:
print(i)

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

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

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

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

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

Lhankor_Mhy

2017/01/23 02:14

補足願います。『A = 8 1 2 3 ... F = 123... となります。(数字はランダム) 』とありますが、ここでいうAとFは末尾コードのAとFでよろしいでしょうか。だとすると、『実際にforループを使って各々出力した際は』とありますが、Aは出力をされていないように思えます。
revoiot

2017/01/23 05:22

はい、数字は違いますが、式は同じです。大変失礼いたしました。 for i in A:に書き換えた際、Aは上記のように出力されます。
guest

回答1

0

ベストアンサー

python

1F = [int(i) for i in input()] 2for i in F: 3 print(i)

にすればいいかと思います。
ただ、問題にはi<10と書いていないように読めますので、その条件がない場合はこの方法ではダメでしょうね。

投稿2017/01/23 05:36

Lhankor_Mhy

総合スコア35865

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

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

Lhankor_Mhy

2017/01/23 05:46

ああ、a_9までの10文字固定なんですね。じゃあ、問題ないですね。
revoiot

2017/01/23 05:51

ご回答ありがとうございます。この場合、なぜ、split()を使うべきでないのか教えていただけないでしょうか?
Lhankor_Mhy

2017/01/23 06:10

http://docs.python.jp/3.5/library/stdtypes.html#textseq にあるとおり、文字列はもともとリストやタプルと同様にシーケンスであるからです。 splitメソッドを使わずにリスト内包表記できますから、必要ないです。 一方、Aの方は、デリミタ記号としてスペースがありますので、それを除去しなければいけませんから、splitメソッドが必要になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問