“list”和“int”的实例之间不支持“<=”。初学者,不知道该怎么办

2024-09-27 00:11:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个程序,看看是否有两个日期匹配的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 ()

非常感谢您的任何帮助/反馈!在


Tags: infordatereturndefrangerandommonth
1条回答
网友
1楼 · 发布于 2024-09-27 00:11:23

问题在您的main()函数中:

def main ():

    listsToGenerate = 10
    for n in range( listsToGenerate ):
        determineDate( createDayNumberList() ) ## 
        print("")

createDayNumberList()返回List对象。将其传递给determineDate(),然后进行比较:

if dayNumber <= endOfMonth, 其中dayNumber是列表对象,endOfMonthINT。因此,错误。在

在我的理解中,由于您的createDayNumberList()始终只返回1个值,所以您可以将其存储在变量中,而不是存储在列表中。在

比如:

^{pr2}$

现在,这个函数还返回一个int。因此,determineDate()中的比较总是正确的。在

相关问题 更多 >

    热门问题