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

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

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

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

Q&A

解決済

2回答

1408閲覧

Pythonのとある問題について

huryu

総合スコア2

Python

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

0グッド

1クリップ

投稿2020/09/24 22:59

こんにちは、先ほどの投稿に似たような投稿です。

何度も考えても、わからない問題があります。ご経験のある方、ご回答お待ちしています。

問題:ユーザーに名前を聞きます。その後、一つ一つのアルファベットに変え、それぞれのアルファベットをその位置の数だけ繰り替えします。以下のようなのが答えになります。
Hello, Beennn!

また、同じくユーザーに名前を聞き、今度は前後から読んでも、同じ結果になるようにします。このようなのが答えです。
Matthew7wehttaM

Python入門者にとっては、頭の痛い問題です。経験の豊富な方、ご回答お願いします。

また、この掲示板はこのような使い方であっているのでしょうか。

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

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

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

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

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

sfdust

2020/09/24 23:02

>一つ一つのアルファベットに変え、それぞれのアルファベットをその位置の数だけ繰り替えします ここが説明不足です。 ユーザーから聞いたもとの文と、直したあとの文を両方提示して下さい。 可能ならば複数の置換例を示してください。
Lhankor_Mhy

2020/09/24 23:07

「一つ一つのアルファベットに変え」とは、具体的にはどのような操作ですか?
jeanbiego

2020/09/24 23:22

>この掲示板はこのような使い方であっているのでしょうか。 合っていません。 自分でコードを書いて、そこでエラーや想定外の挙動が起きたときに質問するのが主な用途です。 参考: https://teratail.com/help/question-tips#questionTips1
dodox86

2020/09/24 23:26

> この掲示板はこのような使い方であっているのでしょうか。 プログラミングに関する質問と言う意味ではあっていますが、投稿の仕方に問題があります。質問の件名は質問の内容を端的に表すものにしましょう。 こちらはご覧になりましたか?[質問するときのヒント]https://teratail.com/help/question-tips また、本質問について「先ほどの投稿に似たような投稿です。」とありますが、先の質問が解決してから本質問(問題)に相対した方が良いと思います。そうでないと自力で解決できない、と言うことですよね。 尚、私は質問に低評価をしてはいませんが、恐らく上記のようなことも評価の内に入ってしまっていることと思います。
toast-uz

2020/09/24 23:27

さらに、教材や学習サイトの問題をそのまま投稿しているような雰囲気ですが、著作権上違法な行為となっている可能性がありますので、ご注意ください。
退会済みユーザー

退会済みユーザー

2020/09/24 23:54 編集

> 何度も考えても、わからない問題があります コメントで何度聞いても答えがないから、回答者は何が聞きたいのか分からないということは認識してますか? 前のスレッドも同様です。 文章の書き方とネットのマナーを勉強するのが先だと思いますけど。
meg_

2020/09/25 00:10 編集

> 先ほどの投稿に似たような投稿です そう言われてもこちらには何のことやら分かりません。 > 何度も考えても、わからない問題があります。 質問者さんがどう考えて何が分からないのかを質問に書いてください。 あと、質問のタイトルも具体的なものにしてください。
huryu

2020/09/25 01:39

申し訳ないです。勉強を先にさせてもらいます。
huryu

2020/09/25 01:50

回答者のみなさま、申し訳ないです。これからはこのような投稿を控えさせていただきます。ご迷惑おかけしました。
guest

回答2

0

ベストアンサー

魔法のような書き方と、実直な書き方を示します。

p.py

puthon3

1name = input() 2print() 3 4print("Hello " + "".join([c * (i + 1) for i, c in enumerate(name)]) + "!") 5print(name + str(len(name)) + name[::-1]) 6 7s = "" 8i = 1 9for c in name: 10 s += c * i 11 i += 1 12print("Hello " + s + "!") 13 14s = "" 15for c in name: 16 s += c 17s += str(len(name)) 18for c in reversed(name): 19 s += c 20print(s) 21

実行例
イメージ説明

投稿2020/09/25 23:14

katoy

総合スコア22324

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

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

huryu

2020/09/27 09:26

ご回答ありがとうございます。とても参考になります!試させていただきます(*- -)(*_ _)ペコリ
guest

0

入力された名前をひっくり返して、名前の後ろにくっつければいいだけですね。
がんばってコードを書いてみてください。

投稿2020/09/24 23:27

y_waiwai

総合スコア88042

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

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

退会済みユーザー

退会済みユーザー

2020/09/24 23:42

> その後、一つ一つのアルファベットに変え、それぞれのアルファベットをその位置の数だけ繰り替えします。 ・・・というのはどうやってやるのでしょう?
kay-ws

2020/09/25 00:54

こんにちは。 > Hello, Beennn! という出力がされたとき、ユーザはなんと入力したのですか? 正直、私には全くわかりません。 思いっきり超訳したつもりで、「Hello, Ben!」が入力だったと仮定したら > その位置の数だけ繰り替えします。 おっしゃるとおりに繰り返した場合 「Heelllllllooooo,,,,,, BBBBBBBBeeeeeeeeennnnnnnnnn!!!!!!!!!!!」 という出力になりませんか? #期待している結果とは違うでしょう? 同じように > Matthew7wehttaM という出力がされたとき、ユーザはなんと入力しているのでしょう? 「Matthew7」でしょうか? それなら出力は 「Matthew77wehttaM」が一番ありそうなパターンですし、 「Natthew7AAA7wehttaM」でもよいことになります。 #期待している結果とは違うでしょう? これは別にPythonの問題というわけではなく、 やりたいことを他の人にうまく伝えられていないので 皆さん困っているのです。結局なにがしたいの?と。 さきにsfdustさんがコメントしているように ・どのような入力をしたとき、どのような出力を期待しているのかを書く ・例をいくつか例示 これを実施してください。 よろしくお願いします。
huryu

2020/09/25 01:48

ご回答ありがとうございます。 申し訳ないです。説明不足でした。例をここに貼らせていただきます。 「Ben」と入力すると、出力がこのようになる事を期待しています。 Hello, Beennn! 「B」は一文字目なので、一度繰り返す。 「E」は二文字目なので、二度繰り返す。 「N」は三文字目なので、三度繰り返す。 このような説明でいかがでしょうか。 また、二つ目の質問は、前後から読んで、同じ結果になるようにしたいです。 「Matthew」と入力し、このような出力を考えています。 「Matthew7wehttaM」 元の名前+字数+元の名前のひっくり返した単語 このような順序になっています。 自分の勉強不足が原因の質問です。これからは勉強してから、質問を投稿するようにします。申し訳ないです。
kay-ws

2020/09/25 02:50

1つ目の質問についてはまだ提示が不十分かな。 ・「Hello, 」が固定で表示されて ・その後に(繰り返し表示) ・その後に「!」を表示 まで言えれば伝わると。 例示を複数書くとわかってもらいやすいのですけど。 2つ目は > 元の名前+字数+元の名前のひっくり返した単語 が出たので、皆さんわかるでしょう。 #最初に出された情報で、字数なんて誰もわからないですよね。
kay-ws

2020/09/25 02:59

追加です。 2つ目ですけど、字数が2桁になったときはどういう結果を想定しています? 「入力例」Schwarzenegger もし、元の名前+字数+元の名前のひっくり返した単語の場合 「出力」Schwarzenegger14reggenezrawhcS となって前後から読んで同じ結果にならないのですが。
huryu

2020/09/25 03:11

お返事ありがとうございます。 数字は、前後から読んでも同じになる事は出力に期待していません。
kay-ws

2020/09/25 03:53

やっと本来の質問に戻れますね。 どこがわかっていないのか確認しましょう。 ◆1つ目 1-1.文字列から1文字ずつ取り出す方法はわかりますか? 1-2.任意の文字を指定回繰り返す方法はわかりますか? ◆2つ目 2-1.文字列の長さを取得する方法はわかりますか? 2-2.文字列を逆順にする方法はわかりますか? # 調べ方としては例えば1-1ですと「Python 文字列 1文字ずつ」で検索してみてください。
huryu

2020/09/27 09:25

1-1 Splitしてから、取り出すという方法でいいのでしょうか? 1-2 ** このマークを使えば繰り替えせると思います。ですが、その文字の場所はどのようにわかるのでしょうか?Index[]でもいいのでしょうか? 2-1 len()でいいかと思います。 2-2 reverse functionや、以下のコードでできるかと思います。 name= "love" new_word= " " for letter in name: new_word= letter + new_word print(new_word)
kay-ws

2020/09/28 00:10

1-2 インデックスがとりだせるならそれでもいいし、 文字列をforで取り出す際も別変数を一つ作って、それを1ずつ増やしても 出来るでしょう。 Katoyさんがわかりやすい回答をつくっていらっしゃるので 読んで、理解して、動かしてみてくださいね。
huryu

2020/09/29 02:29

お返事ありがとうございます。助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問