私はCodeCademyを使用して自分自身でPythonを教える初心者のプログラマーです。私はそれまでに学んだ知識をチェックするために、自分でスクリプトを書いた。このスクリプトの目的は、ユーザー入力日付に基づいて特定の週末に利用可能な人物の名前を印刷し、スクリプトで書いた日付のリストと相互参照することです。スクリプトはCodeCademyで動作しますが、コマンドラインでは機能しません
奇妙な部分は、このスクリプトがCodeCademyのPython環境で意図した通りに機能し、エラーなしであることです。毎回期待している結果を正確に返します。ただし、コマンドラインからPython 3.6.1を使用してスクリプトを手動で実行しようとすると、このようなことは起こりません。むしろ、何時でも毎回同じ結果を返します。ここに私のコードです:
#script to tell who is free on a certain weekend
input_date = input("Please input the weekend on which you are looking for in
the format mm.dd (ex. weekend of June 30th is 06.30): ")
ben_dates = [06.16,06.23,06.30,07.07,07.14,08.04,08.11]
david_dates = [06.16,06.23,06.30,07.14,07.28,08.04,08.11]
danyall_dates = [06.30,07.07,07.14,07.21,07.28,08.04,08.11]
kevin_dates= [06.16,06.23,06.30,07.07,07.14,07.21,07.28,08.04,08.11,08.18]
manan_dates=[06.16,07.14,07.21,07.28,08.04]
jack_dates=[06.30,07.07,07.14,07.21,07.28,08.04]
free_people = "The people free on this date are: "
free_people_orig = free_people
for date in ben_dates:
if input_date == date:
free_people = free_people + "Ben, "
for date in david_dates:
if input_date == date:
free_people = free_people + "David, "
for date in danyall_dates:
if input_date == date:
free_people = free_people + "Danyall, "
for date in kevin_dates:
if input_date == date:
free_people = free_people + "Kevin, "
for date in manan_dates:
if input_date == date:
free_people = free_people + "Manan, "
for date in jack_dates:
if input_date == date:
free_people = free_people + "Jack, "
if len(free_people) == len(free_people_orig):
free_people = "No one is free on this weekend."
print(free_people)
ので、例えば、ユーザ入力'06 0.30' CodeCademyには、印刷されるプログラムのこの日、人々は自由である場合:ベン、デビッド、Danyall、ケビン、ジャック、これは正しい結果になるでしょう。
しかし、コマンドラインで実行した場合、同じ入力で「今週は誰も無料ではありません」と表示され、なぜこのようなことが起こっているのか全く分かりません。
if、elif、else文を使用してwhileループとforループのいくつかのバリエーションを試し、free_people文字列の条件と書式を変更し、変更をトリガーするものと同様に他の多くの戦術この特定のソリューションについてはまだ、スクリプトを適切に実行できるものはありませんでした。 CodeCademyでは動作しますが、コンピュータでは動作しません。
また、私はこれがこのタスク用のスクリプトを作成する最良の方法とはかけ離れていることを認識しています。しかし、私は初心者であり、このスクリプトを書いていますが、自分で基本的な使い方ができるスクリプトを書くことで学んだ特定のスキルをテストすることが最大の関心事です。私はこの特定のスクリプトのこの特定のバージョンがなぜ機能しないのかを理解することにのみ興味があります。
P.S.これはStackOverflowの私の最初の投稿です、私はこの投稿を間違ってフォーマットした場合、私の謝罪です。
Input_dateは 'str'であり、あなたがfloat's'と比較しようとしています。 – abccd