如何从数组和用户输入中减去?

时间:2015-10-04 05:49:25

标签: python python-3.x

我正在使用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)

我不确定这是如何运作的,因为我想减去这一天的时间'与'天''并打印出一个整数剩余多少。我很困惑。请帮忙!谢谢!

3 个答案:

答案 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结束的过程