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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Python

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

Q&A

解決済

2回答

1033閲覧

指定した月の曜日を1ヶ月分出力したい。

pepetts

総合スコア7

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Python

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

0グッド

0クリップ

投稿2020/05/09 11:49

指定した年月の最初の曜日から月末の最後の曜日まで繰り返し出力したいです。
このコードだと月曜日スタートの月だと大丈夫なのですが、それ以外だとfor文の中のprint(youbi[days[0] + youbi_index])の部分でIndexErrorが出てしまいます。
エラーの内容はわかるのですが、どうやって実現したら良いのかわかりません。
何かアドバイスいただけたら幸いです。
よろしくお願いします。

python

1youbi = ['月','火','水','木','金','土','日'] 2year = 2020 3month =4 5days = calendar.monthrange(int(year),int(month)) 6first_day = days[0] #月初の曜日(0が月曜日) 7days_range = days[1] #1か月の日数 8 9youbi_index = 0 10 11for d in range(days[1]): 12 if days[0] + youbi_index > 6: #日曜日までいったら月曜日に戻す 13 youbi_index = 0 14 print(youbi[days[0] + youbi_index]) 15 youbi_index += 1

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

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

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

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

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

guest

回答2

0

ベストアンサー

import calendar youbi = ['月','火','水','木','金','土','日'] year = 2020 month = 5 days = calendar.monthrange(int(year),int(month)) first_day = days[0] #月初の曜日(0が月曜日) days_range = days[1] #1か月の日数 youbi_index = first_day for d in range(days[1]): youbi_index %= 7 print(youbi[youbi_index]) youbi_index += 1

投稿2020/05/09 12:17

patapi

総合スコア687

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

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

pepetts

2020/05/09 12:26

無事にできました!これに2日かかりました。。 ありがとうございます!
guest

0

剰余を取ると簡単でしょう。

Python

1>>> for n in range(20): 2... print(n%7) 3... 40 51 62 73 84 95 106 110 121 132 143 154 165 176 180 191 202 213 224 235

投稿2020/05/09 12:01

LouiS0616

総合スコア35660

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

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

pepetts

2020/05/09 12:27

早い返答ありがとうございました! 無事にできました。 また機会があったらよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問