pythonwing-ide

Function takes exactly 3 arguments (1 given)? Help formatting print statement


Here are my questions:

Create a function called "numSchools" that counts the schools of a specific type. The function should have three input parameters, (1) a string for the workspace, (2) a string for the shapefile name, and (3) a string for the facility type (e.g. "HIGH SCHOOL"), and one output parameter, (1) an integer for the number of schools of that facility type in the shapefile.

import arcpy

shapefile = "Schools.shp"
work = r"c:\Scripts\Lab 6 Data"
sTyp = "HIGH SCHOOL"

def numSchools(work, shapefile, sTyp):

    whereClause = "\"FACILITY\" = 'HIGH SCHOOL' " # where clause for high schools
    field = ['FACILITY']
    searchCurs = arcpy.SearchCursor(shapefile, field, whereClause)
    row = searchCurs.next()
    for row in searchCurs:
    # using getValue() to get the name of the high school
    value = row.getValue("NAME")

    high_schools = [row[0] for row in arcpy.SearchCursor(shapefile, field, whereClause)]
    count = arcpy.GetCount_management(high_schools)
    return count

numSchools(work, shapefile, sTyp)
print ("There are a total of: "),count

So this is my code that runs perfectly, but it is accomplished by scripting. I need to wrap it into a python function. (MY WEAKNESS). It seems there are some problems with the last line of my code. `

I am not quite sure how to format this last line of code to read (there are a total of 29 high schools) while including necessary arguments.


Solution

  • You need to explicitly pass the arguments.

    count = numSchools(work, shapefile, sTyp)
    print("There are a total of: ", count)