🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

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

Q&A

解決済

3回答

967閲覧

Pythonで2つの引数を混ぜた文字列を返す表示について

furi-za

総合スコア5

Python

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

0グッド

0クリップ

投稿2019/09/29 09:41

編集2019/09/29 10:12

前提・実現したいこと

関数decoの中に何を入れれば実行例のように表示されるのかわかりません。
いろんなことを試しましたが失敗したので教えてください。

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

エラーメッセージ def deco(a, b): for i in b: for j in a: return i+j dtext = deco('COMPUTER', '_') print(dtext) dtext = deco('プロ基礎2', '†') # †は「ダガー」で変換できる。 print(dtext) [実行結果] _C †プ [実行例] _C_O_M_P_U_T_E_R_ †プ†ロ†基†礎†2†

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

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

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

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

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

guest

回答3

0

ベストアンサー

python

1def deco(a, b): 2 return b + b.join(a) + b 3 4dtext = deco('COMPUTER', '_') 5print(dtext) 6dtext = deco('プロ基礎2', '†') 7print(dtext)

投稿2019/09/29 09:52

hayataka2049

総合スコア30935

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

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

furi-za

2019/09/29 10:01

ありがとうございます!! やってみたらできました!!!
hayataka2049

2019/09/29 10:05

これが「プロ基礎2」の課題ならforで書く方が正解かもしれませんよとは伝えておきます(講義中にそういう話が出たなら)。
furi-za

2019/09/29 10:09

確かにjoinはまだ習っていませんね forの場合はネストで書けばいいのですか?
hayataka2049

2019/09/29 10:12

ネストにする必要はなく、aだけループさせれば良いでしょう。やりかたは自分で考えてください(書いたら課題の意味ないし・・・)
furi-za

2019/09/29 10:13

たしかにそうですね。 自分でしっかりと考えたいと思います。 回答ありがとうござます!
LouiS0616

2019/09/29 10:23 編集

※誤爆の為削除、自らの回答コメントに移動
guest

0

ヒントだけ。

Python

1>>> 'a'.join('あいうえお') 2'あaいaうaえaお' 3>>> 4>>> 'a' + 'bcde' 5'abcde'

いろんなことを試しましたが失敗したので

具体的に書いて下さい。

投稿2019/09/29 09:51

編集2019/09/29 09:52
LouiS0616

総合スコア35668

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

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

furi-za

2019/09/29 09:58

なるほど! joinをつかうのですね!! ありがとうございます!!! あと失敗した例としてはfor文を書いたりして失敗しました。
LouiS0616

2019/09/29 10:02

質問をする際には、実際にどのように試行したのかコードを添えて書いて下さい。 今のような質問文だと、本当に頑張ったのか上辺だけ取り繕っているのか見分けが付きませんし、実力が測れないのでアドバイスもしづらいです。
furi-za

2019/09/29 10:05

失敗した場合でもしっかりとコードを書くべきですね。 すいませんでした。次からは気を付けます。
LouiS0616

2019/09/29 10:29 編集

追記分のコードを拝見しました。 return文が実行されると、処理が関数から即座に脱出します。 ですので、for文内にreturnが裸で置いてあるコードはあり得ません。二周目に突入する前にfor文を飛び越えて関数から脱出してしまうからです。(ただし if xxx: return yyy というコードであればよく使います。) 慣れないうちはなかなか気付きづらいですが、このように絶対あり得ないコードを発見する嗅覚のようなものは鍛えておきたいものです。 鍛えるには、とにかくたくさんのコードに触れることです。頑張って下さい。 (あり得ません、と書くとキツく感じるかもしれませんが、馬鹿にしたり非難したりする意思はありません。為念。)
furi-za

2019/09/29 10:29

回答ありがとうございます。 returnは脱出してしまうから1文字目しか表示されないのですね。 とても勉強になりました。 このようなコードを書かないようにするためにもたくさんコードに触れたいと思います。
guest

0

こんな感じ?

Python

1def deco(a, b): 2 return b + b.join(list(a))+b

投稿2019/09/29 09:54

編集2019/09/29 10:06
nomuken

総合スコア1627

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

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

hayataka2049

2019/09/29 09:55

str.joinは文字列のiterableの「間」に挿入してくれるのです。
furi-za

2019/09/29 10:02

回答ありがとうございます! 試してみたいと思います!
nomuken

2019/09/29 10:05

先頭にもいれるんでしたね。失礼しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問