
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
while datetime.datetime.now().hour != 17 or datetime.datetime.now().minute != 0:
の読み解き方ですが、
while 条件:
処理A
の場合、条件が成立する間、処理Aを実行します。
条件は時刻が17:00でない間になります。
17:00でないということは、時が17時でないか、分が0分でないかの
どちらかの場合です。
16:00は、時が17時でないので条件成立。
17:01は、分が0分でないので条件成立。
17:00は、時が17時かつ分が0分なので、条件成立しない。
となります。
個人的は、このことで頭を悩ますよりは、私が提示したスクリプトの方が
直感的にわかりやすいかと思います。
スクリプトが多少長くなっても、誰にもわかりやすいほうが良いかと思います。
No.4
- 回答日時:
具体的な環境が提示されなかったのでとりあえず、コマンドプロンプトで実行できる環境があるという前提で書きます。
これが、あなたが提示したスクリプトの確認用スクリプトです。
https://ideone.com/4mHUMs
これが、私が提示したスクリプトの確認用スクリプトです。
https://ideone.com/dBle4d
(インデントが乱れるため、上記のURLにアップしました)
あなたが提示したスクリプトを実行すると以下のようになります。
1.最初に以下の3行が表示されます。
14
2
IN
14と2は、14時2分にスクリプトを開始した時刻を表示しています。
INは、これからスリープのためのwhile文に入りますという表示です。
2.17時0分になり、whileを終了すると、以下の3行が表示されます。
OUT
17
0
OUTは、whileを抜けた表示です。
17と0はその時の、時刻です。(17時0分)
尚、このスクリプトを、14時に開始すると、17時まで完了を待たなければなりません。
17時まで待てれば、問題ありませんが、待てない場合は、
hour != 17 を hour != 15に変えてください。
そうすると15時0分に終了します。
もう一つの私の提示したスクリプトも同様にして確認できます。
No.3
- 回答日時:
>なお、コードについてですが、ややこしく私にははこれが正しく動作するのかすら確認できませんでした。
どのように考えれば正しく動いていると理解できますでしょうか?環境はwindowsでしょうか。そうであれば、コマンドプロンプトで
pythonのスクリプトを実行することは可能でしょうか。
可能であれば、確認方法を提示できます。
もしくは、
環境はlinuxでしょうか。そうであれば、端末(コマンドライン)で
pythonのスクリプトを実行することは可能でしょうか。
可能であれば、確認方法を提示できます。
どちらかで、可能であれば、その旨補足してください。
書き方が悪くすみません。Pythonの動く環境はあるのですが、このコードがややこしく頭で追えず、コードがなぜ正しく動くのか理解できず、どのように考えれば理解できるか知りたく思っています。
No.2
- 回答日時:
No1です。
if dt.hour == 11 and dt.minute == 0:
は誤りです。
if dt.hour == 17 and dt.minute == 0:
に訂正します。
失礼しました。
No.1
- 回答日時:
>こんなコードが見つかったのですが、これで17:00までスリープできるのでしょうか?
回答:はい、できます。スクリプトは正しく動作します。
>また、これが正しいならシンプルなコードに見えるのですがどのようにしたら簡単に思いつきますか?
回答:私が作ったわけではないので、どのようにしたら、思いつくかは作った人に尋ねるのが、最も手っ取り早いかと。
通常は、以下のようなスクリプトの方が、わかりやすいかと思います。
(シンプルではないかもしれませんが)
while True:
dt = datetime.datetime.now()
if dt.hour == 11 and dt.minute == 0:
break
time.sleep(1)
インデントが崩れていますので、その点はご了承ください。
(このサイトに投稿するとインデントが崩れます)
回答いただきありがとうございます。
コードありがとうございます。行数が増えますが理解はしやすいですね。
質問のコードは作成者がわからないのですが、!=とorが使ってありどのような考えで作ったの気になっています。
なお、コードについてですが、ややこしく私にははこれが正しく動作するのかすら確認できませんでした。どのように考えれば正しく動いていると理解できますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Visual Basic(VBA) vb.net どうしてイコールにならないのでしょうか 4 2022/09/29 12:21
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
- Visual Basic(VBA) vbaでサーバー上に年月の名称のフォルダーがなかったら、作成しその中にエクセルのファイルを保存するも 3 2021/12/14 08:34
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- ノートパソコン PINの投入をしなくてすむ方法は? 4 2022/06/08 11:26
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
JavaScriptの定数名が取り消し...
-
access2021 VBA メソッドまたは...
-
フォルダの中にCSVデータ
-
Excelのカウントについて
-
Visual Basicでツリービューリ...
-
JANコードとPOSコードは同じ?
-
1日に1人がこなせるプログラム...
-
VBA&マクロのシート転記につい...
-
Javaの改行について
-
日付の表示形式の変換について
-
ACCESSユニオンクエリでORDER B...
-
再 Auto Filter
-
VC2005においてif文が正しく評...
-
複数条件のものを合算したい
-
マクロの入力
-
VBAでファイルオープン後にコー...
-
VLookup関数を使ってラベルに表...
-
JISコードと句点コードと1...
-
Accessの文字列部分一致を合計...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
JavaScriptの定数名が取り消し...
-
access2021 VBA メソッドまたは...
-
JANコードとPOSコードは同じ?
-
PreviewKeyDownイベントが2回...
-
エクセルに見えない文字(JISX0...
-
オートフィルタで抽出結果に 罫...
-
Excelシート上で右クリックがで...
-
Exel VBA 別ブックから該当デ...
-
access2003 クエリSQL文に...
-
変数名「cur」について
-
Nullの使い方が不正です。
-
【VB6】実行ファイルとした後、...
-
VBAでファイルオープン後にコー...
-
COBOLの文法
-
Accessでの抽出で完全一致。
-
AccessでReplace関数を使うときに…
-
Access DCountでの連番について
-
sinカーブの表示のさせ方
おすすめ情報