前提・実現したいこと
【文字列の操作について】
下のプログラムはリストboxから無作為に取り出した文字列が
"ABCDE" であれば「一致しています」
それ以外であれば「一致していません」
と表示するプログラムです。
このプログラムを変更してどの文字列が取り出されても
you = "ABCDE"
になるようにしたいと考えています。
ただし、目的は「文字列の操作」であるため
・文字列を取り出した後に「you = "ABCDE"」と変数を変更しない
とします。
リストbox内の文字列はすべて "ABCDE" の並び順を変えたものです。
「最前列の文字を最後尾に移動して、それ以外の文字は1つずつ前に位置をずらす」
という処理を0回から4回行ったものになります。
例えば、"CDEAB"は2回並び順の操作が行われた文字列です。
ここでどの文字列が取り出されても"ABCDE" にしたい場合、どのような関数にしたらよいでしょう。
コード
Python
1import random 2model = "ABCDE" 3box = ["ABCDE","BCDEA","CDEAB","DEABC","EABCD"] 4you = random.choice(box) 5 6#ここに関数を書き込みます 7 8if model == you: 9 print("一致しています!") 10 11else: 12 print("一致していません!")
you = "ABCDE" としない理由がわかりません。課題かなにかなら「これこれを使ってやりなさい」という指定かなにかが、そうでないなら、あなたが「こういう風にやりたい」という気持ちがあるはずですのでそれを書いてもらえるといいかと思います。(課題ならヒント程度しか回答がつかないでしょうけれども)
質問の意図がよくわからないのですが、選ばれた文字列から「最前列の文字を最後尾に移動する処理」を何回繰り返すと、「ABCDE」になるかを求めたいという事でしょうか?
おっPyの文字列はimmutableだから、何らかの方法で目的となる文字列を生成してyou変数(の参照先)を変更する以外に目的を達成する方法はないよ。課題だとしたら、あなたが意図を理解できていないか、せんせーがおっPyを理解できていないかのどちらかだから確認したほうが良い
>>quiqui様
質問の目的を書いていませんでしたね。
失礼しました。課題ではありません。
私はPython初心者です。
現在、文字列の操作を勉強していて「この場合の操作はどうやるんだろう?」とふと考えたものを質問しました。
>>tiitoi様
そうですね。
正確には"ABCDE"になるために「最前列の文字を最後尾に移動する処理を自動で繰り返し行う」ような関数を作りたいと考えています。回数自体は求めていません。
回数を求めたいのでなければ、なぜそのような処理をしたいのか理解できません。
overdoser さんがご指摘されてるように Python の文字列は一度作ったら、あとから変更することはできません。
回答3件
あなたの回答
tips
プレビュー