Как я могу удалить «Нет» в конце оператора возврата функции моей функции? - PullRequest
0 голосов
/ 30 октября 2019

Может ли кто-нибудь объяснить, почему и как я получаю «None» в конце оператора return моих функций, и как я могу его удалить? Я не вижу, как оператор print может вызвать его появление.

class City:
    # Task 1
    def __init__ (self, name, label, lat, lon, pop_dict):
        self.name = name
        self.label = label
        self.lat = lat
        self.lon = lon
        self.pop_dict = pop_dict
    def printPopChange(self, year1, year2): 
        pop_dict = self.pop_dict #pop_dict[year1]
        year1pop = pop_dict[year1]
        year2pop = pop_dict[year2]
        popchange = float(year2pop) - float(year1pop)
        print "The population difference in", self.name, "from", year1.strip("yr"), "to", year2.strip("yr"), "is", popchange, "million people."
Cities = []

f = open("CityPop.csv","r")
header = f.readline()
header = header.strip().split(",")
for line in f:
    record = line.strip().split(",")
    pop = {}
    for i in range (5, 14):
        pop[header[i]] = record[i]
    newCity = City(name = record[3], label = record[4], lat = record[1], lon = record[2], pop_dict = pop)
    Cities.append(newCity)

Так, например, если я запускаю: print Cities[0].printPopChange("yr1990", "yr1995"),

Я получаю: "The population difference in Tokyo from 1990 to 1995 is 1.06 million people." "Нет" `

Ответы [ 2 ]

1 голос
/ 30 октября 2019

printPropChange() печатает само сообщение и ничего не возвращает. Просто вызовите функцию без использования print.

Cities[0].printPopChange("yr1990", "yr1995")
0 голосов
/ 30 октября 2019

Заменить print в конце функции на return.

Затем объединить все элементы возвращаемого кортежа в строку:

print ''.join(Cities[0].printPopChange("yr1990", "yr1995"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...