5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
jinoseさんの投稿
(投稿ID: 5526)
f文字列を使うと、数値でも整数型とみなされる←楽
全国に中央区がある為、今ある知識(f文字列、リスト、VBA基礎編のハナコと羊の数え方)を総動員し、遊んでみました。
pref_name_list = ["北海道","東京都","神奈川県"]
weather_list= ["晴れ","曇り","雨"]
year = 2024
for pref in pref_name_list:
tenki = f'{year}年、本日の{pref}中央区の天気は'
for yohou in weather_list:
yohou = f'{yohou}です'
print(tenki+yohou)
狙っていた結果は3行(1つの県に対し、1つの天気予報を表示)だったのですが、9行になってしまいました笑
2024年、本日の北海道中央区の天気は晴れです
2024年、本日の北海道中央区の天気は曇りです
2024年、本日の北海道中央区の天気は雨です
2024年、本日の東京都中央区の天気は晴れです
2024年、本日の東京都中央区の天気は曇りです
2024年、本日の東京都中央区の天気は雨です
2024年、本日の神奈川県中央区の天気は晴れです
2024年、本日の神奈川県中央区の天気は曇りです
2024年、本日の神奈川県中央区の天気は雨です
けど、楽しい!
狙った結果はおいおい学んでいきます。
小川 慶一さんのコメント
(コメントID: 8315)
やりたいことを表現すると、こんな感じですかね。
あるいは、以下のように(別解多数)
jinoseさんのコメント
(コメントID: 8317)
はい、やりたいことはこんな感じでした!!リストの中の要素には、引数が使えるのですね。
最終的には、変数は様々あると思いますが、
「全国の天気(気温)から、全国の各支店の来場者数を予測し、今期の売上予測をする」
みたいなデータ分析をやりたいです!!
小川 慶一さんのコメント
(コメントID: 8320)
***
pref_name_list = ["北海道","東京都","神奈川県"]
weather_list= ["晴れ","曇り","雨"]
year = 2024
for pref in pref_name_list:
tenki = f'{year}年、本日の{pref}中央区の天気は'
for yohou in weather_list:
yohou = f'{yohou}です'
print(tenki+yohou)
狙っていた結果は3行(1つの県に対し、1つの天気予報を表示)だったのですが、9行になってしまいました笑
2024年、本日の北海道中央区の天気は晴れです
2024年、本日の北海道中央区の天気は曇りです
2024年、本日の北海道中央区の天気は雨です
2024年、本日の東京都中央区の天気は晴れです
2024年、本日の東京都中央区の天気は曇りです
2024年、本日の東京都中央区の天気は雨です
2024年、本日の神奈川県中央区の天気は晴れです
2024年、本日の神奈川県中央区の天気は曇りです
2024年、本日の神奈川県中央区の天気は雨です
どう修正したら良いでしょう?
***
以下は ChagGPT 4.0 からの回答です。
プログラムが意図した出力になるように修正するには、各県に対してランダムに天気を選んで表示する必要があります。以下に修正したPythonコードを示します。このコードでは、`random.choice()`を使って`weather_list`からランダムに天気を選んでいます。
```python
import random # ランダムモジュールをインポート
pref_name_list = ["北海道","東京都","神奈川県"]
weather_list = ["晴れ", "曇り", "雨"]
year = 2024
for pref in pref_name_list:
weather = random.choice(weather_list) # 天気予報をランダムに選択
tenki = f'{year}年、本日の{pref}中央区の天気は{weather}です'
print(tenki)
```
このコードでは、`for pref in pref_name_list`ループの中で`weather`変数を定義し、その`weather`変数を使って天気予報を`tenki`文字列に組み込んでいます。これにより、各県ごとにランダムな天気予報が1行ずつ出力されます。
***
以下は、 claude.ai の claude 3 Opus の場合。
zip 関数はまだ扱ってないかな。
***
ネストされたループを使用しているため、全ての組み合わせが出力されています。意図した結果を得るには、ループを1つにまとめる必要があります。以下のように修正してみてください。
```python
pref_name_list = ["北海道", "東京都", "神奈川県"]
weather_list = ["晴れ", "曇り", "雨"]
year = 2024
for i in range(len(pref_name_list)):
pref = pref_name_list[i]
yohou = weather_list[i]
tenki = f'{year}年、本日の{pref}中央区の天気は{yohou}です'
print(tenki)
```
このように修正すると、県名と天気予報のリストの同じインデックスの要素を使用して、意図した3行の出力が得られます。
```
2024年、本日の北海道中央区の天気は晴れです
2024年、本日の東京都中央区の天気は曇りです
2024年、本日の神奈川県中央区の天気は雨です
```
ただし、この修正では、`pref_name_list`と`weather_list`の長さが同じであることが前提となります。リストの長さが異なる場合は、`zip()`関数を使用して2つのリストを組み合わせることができます。
```python
for pref, yohou in zip(pref_name_list, weather_list):
tenki = f'{year}年、本日の{pref}中央区の天気は{yohou}です'
print(tenki)
```
この方法では、リストの長さが異なる場合でも、短い方のリストの要素数までが出力されます。
小川 慶一さんのコメント
(コメントID: 8321)
section2 まで学習が進んだならば request module を使ってそういうのから情報を得られるところまでいけるでしょう。
jinoseさんのコメント
(コメントID: 8323)
うお~すごい^^ ChagGPTにコード修正こうやるのですね。
ありがとうござました!!!