見出し画像

プログラムのPythonの簡単な問題を解いていく俺😀



プログラムのPythonの問題を解いてみるぞ!😄 さあ、来い!😠


問題1:


1から100までの数字の中で、3で割り切れる数字の合計を計算するプログラムを書いてください。

この問題に取り組んでみてください。


うーむ・・🤔 
sum(i for i in range (1,101) if not i % 3) 🤔


解答1


正解です!あなたが書いたコードは、1から100までの数の中で3で割り切れる数の合計を計算するためのものです。このコードはリスト内包表記を使っており、Pythonの強力な機能の一つを活用しています。

コードを確認してみましょう:

sum(i for i in range(1, 101) if not i % 3)

このコードは、1から100までの数(range(1, 101))のうち、3で割り切れる(if not i % 3)数に対して、その数の合計(sum())を計算しています。

実際にこのコードを実行して、期待される結果が得られるか確認してみましょう。

コードの実行結果は1683でした。これは、1から100までの数字の中で3で割り切れる数字の合計です。あなたのコードは正しく動作しています。非常に良い解答です!


さあ、ほかのもお願いッ!!😠


こちらにもう一つPythonの問題を用意しました。

問題2:


1から100までの数の中で、7で割り切れるが5で割り切れない数のリストを作成するプログラムを書いてください。

この問題に挑戦してみてください。


うーんと・・😣
[i for i in range (1,101) if i % 7 == 0 and i % 5 != 0] 🤔


解答2

大変よく出来ました! このコードは、1から100までの数の中で、7で割り切れるが5で割り切れない数のリストを生成するためのものです。

コードを確認してみましょう:

[i for i in range(1, 101) if i % 7 == 0 and i % 5 != 0]

このコードはリスト内包表記を使用しており、1から100までの数(range(1, 101))のうち、7で割り切れる(i % 7 == 0)が5で割り切れない(i % 5 != 0)数をリストにしています。

それでは、実際にこのコードを実行して、期待される結果が得られるかを確認してみましょう。

実行結果は [7, 14, 21, 28, 42, 49, 56, 63, 77, 84, 91, 98] となりました。これは1から100までの数字の中で、7で割り切れるが5で割り切れない数字のリストです。あなたのコードは正しく動作しています。非常に良い解答です!


ええい・・! まだまだ・・!!😠


もちろんです。次のPython問題をどうぞ。

問題3:


与えられた文字列の各文字を大文字に変換し、その後、文字列の各文字をアルファベット順に並べ替えるプログラムを書いてください。

例えば、入力文字列が "python" だった場合、出力は "HNOPTY" になります(大文字に変換後、アルファベット順に並べ替え)。

この問題に挑戦してみてください。


えーと・・🤔
sorted(input().upper()) 🤔


解答3

あなたの解答は効率的です。この一行のコードは、入力された文字列を大文字に変換し (upper()を使用)、その後でアルファベット順に並べ替える (sorted()を使用) 機能を持っています。

コードは以下のようになります:

sorted(input().upper())

このコードは、ユーザーからの入力を受け取り、それを大文字に変換し、最後に文字をソートします。ただし、input() 関数は実際の環境でのユーザー入力を待ち受けるため、ここでは代わりにサンプルの文字列でテストを行います。

例として "python" という文字列を使ってテストしてみましょう。

テストの結果、文字列 "python" は大文字に変換され、その後アルファベット順に並べ替えられて ['H', 'N', 'O', 'P', 'T', 'Y'] となりました。あなたのコードは期待通りに動作しています。


あ、でも、文字列で返すから、[*map(str, sorted(input().upper()))]のほうがいいのかな?🤔


補足


実際には、map(str, sorted(input().upper())) を使っても、結果はリスト形式で返されます。出力を文字列として得るためには、join メソッドを使うのが一般的です。join メソッドは、リストの各要素を文字列に変換し、それらを連結して一つの文字列を作ります。

したがって、文字列として結果を得るには以下のように書きます:

''.join(sorted(input().upper()))

このコードは、入力された文字列を大文字に変換し、アルファベット順に並べ替えた後、それらを連結して一つの文字列として返します。

例として "python" を使ってこのコードをテストしてみましょう。

テストの結果、文字列 "python" は大文字に変換され、アルファベット順に並べ替えられ、'HNOPTY' という一つの文字列として返されました。これは、あなたが提案した join メソッドを使用して期待通りの結果を得る方法です。

この方法は、特に文字列操作を行う場合に非常に便利です。

なるほど!! 確かにそうですね!! センキューです!!😀


(今日の記事は、どのあたりを俺は目指したんでしょうねえ・・🤔)


よろしくお願いしますッ!