我正在使用Grok Learning来获取此代码。我必须做类似的事情:
天气预报
编写一个程序,询问用户本周下雨的时间,然后告诉他们有多少天没有下雨。
与您的计划的互动应如下所示:
哪天有下雨?周一周一周三
没有下雨的天数:4
或者像这样:
哪天有下雨?周四
无雨天数:6
您无需检查用户的输入是否有意义(即他们是否输入了一周中的有效日期)。
这是我目前的代码:
day = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
day1 = ['Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun']
days = input("Which days had rain? ")
for days in day:
count = days - day
print("Number of days without rain: " + str(len(day)) + count)
我不确定这是如何运作的,因为我想减去这一天的时间'与'天''并打印出一个整数剩余多少。我很困惑。请帮忙!谢谢!
答案 0 :(得分:2)
您的第一个问题是,当您要求用户输入时,您将获得一个字符串。所以,如果你输入这样的东西:星期二星期二热狗,那么你的日期变量将如下所示:
"Monday Tuesday hotdog"
所以,正如你所说,你不关心输入是什么,只要你能得到多少天。这意味着一个数字。因此,您希望获得该字符串的长度。或者换句话说,字符串中有多少个单词。您可以简单地这样做:
len(days.split())
所以,现在你有多少天了。您所要做的就是简单地减去:
7 - len(days.split())
因此,您的代码可以简单地制作:
days = input("Which days had rain? ")
print("Number of days without rain: {}".format(7 - len(days.split())))
演示:
Which days had rain? m w f s
Number of days without rain: 3
或者:
Which days had rain? Monday Thursday
Number of days without rain: 5
答案 1 :(得分:1)
首先,让day
为可能日期list
day = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
然后,您应该接受输入:
days = raw_input("Which days had rain? ")
因为,你可以在输入中有多天,你应该split
。
input_list = days.split()
现在必须计算input
列表中有多少days
?怎么样?
count=0 # counts the number of valid input days
for input in input_list: # insures you are checking all the inputs one by one
if any(input in day for day in days): # check if input exists in the `days` list.
count+=1
print len(days)-count
答案 2 :(得分:0)
您无需检查用户输入是否有意义(即他们是否输入了一周中的有效日期)。 我这样解决了
rainyDays = input("Which days had rain? ")
sepDay = rainyDays.split(' ')
for i in sepDay:
indexOfDays = sepDay.index(i)
x = 6 - indexOfDays
if rainyDays == "":
x = 7 - indexOfDays
print("Number of days without rain: " + str(x))
结果
哪几天下雨?星期一星期二星期三任何一天 无雨天数:3
以退出代码0结束的过程