我试图写一个程序,看看是否有两个日期匹配的30个日期从1到365 在尝试测试程序时,我不断遇到错误“<;=”在'list'和'int'的实例之间不受支持',我不确定如何继续。在
以下是我目前为止的计划:
import random
MaxInList = 30
def createDayNumberList( howMany = MaxInList ):
dayNumbers = []
for counter in range( howMany ):
nextDayNumber = random.randint( 1, 365 )
dayNumbers.append( nextDayNumber )
return dayNumbers
def determineDate( dayNumber = 1 ):
months = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
name = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]
endOfMonth = 0
daysSoFar = 0
for month in range( len( months ) ):
endOfMonth += months[month]
if dayNumber <= endOfMonth:
date = name[month]
date += " " + str( dayNumber - daysSoFar )
return date
daysSoFar = endOfMonth
return "Bad date!"
def main ():
listsToGenerate = 10
for n in range( listsToGenerate ):
determineDate( createDayNumberList () )
print("")
main ()
非常感谢您的任何帮助/反馈!在
问题在您的
main()
函数中:createDayNumberList()
返回List
对象。将其传递给determineDate()
,然后进行比较:if dayNumber <= endOfMonth
, 其中dayNumber
是列表对象,endOfMonth
是INT
。因此,错误。在在我的理解中,由于您的
createDayNumberList()
始终只返回1个值,所以您可以将其存储在变量中,而不是存储在列表中。在比如:
^{pr2}$现在,这个函数还返回一个
int
。因此,determineDate()
中的比较总是正确的。在相关问题 更多 >
编程相关推荐