gpt4 book ai didi

python - 脚本在 CodeCademy 中有效,但在命令行中无效

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:14 26 4
gpt4 key购买 nike

我是一名新手程序员,使用 CodeCademy 自学 Python。我自己写了一个脚本来检查我到目前为止学到的知识。该脚本的目的是根据用户输入的日期打印某个周末有空的人员姓名,并与我在脚本中编写的日期列表进行交叉引用。

奇怪的是,这个脚本在 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)

因此,例如,如果用户在 CodeCademy 上输入“06.30”,程序将打印“此日期有空的人是:Ben、David、Danyall、Kevin、Jack”,这将是正确的结果。

但是,如果在命令行中运行,相同的输入将打印“本周末没有人有空”,我完全不知道为什么会这样。

我尝试了 while 和 for 循环的几种不同变体,使用 if、elif 和 else 语句,更改 free_people 字符串的条件和格式以及触发它被修改的条件,以及许多其他策略这个特定的解决方案,但没有一个能够使脚本正常运行。它在 CodeCademy 中有效但在我的计算机上无效,我在这里做错了什么?

此外,我知道这远不是为此任务创建脚本的最佳方式,即便如此,我的实现方式肯定会更好。但是,我是初学者,编写此脚本的主要目的是测试我通过编写可能对自己有一些基本用途的脚本而学到的特定技能。我只想弄清楚为什么这个特定脚本的这个特定版本不起作用。

附言这是我在 StackOverflow 上的第一篇文章,如果我的文章格式不正确,我深表歉意。

最佳答案

问题是您输入的是一个字符串,而它需要是一个 float 。列表中的每个元素都是 float ,并且您试图查看这些列表中是否存在字符串类型的元素,这是 False

试试这个:

input_date = float(input("Please input the weekend on which you are looking for in the "
"format mm.dd (ex. weekend of June 30th is 06.30): "))

关于python - 脚本在 CodeCademy 中有效,但在命令行中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com