Я пытаюсь поместить это значение в строку таблицы. Как мне это исправить?

#python

#python

Вопрос:

Ввод:

 street_number = random.randint(1,300)
street_name = ['Main', 'Apache', 'Elm', 'Cedar', 'Oak', 'Sunset', 'Willow', 'Spruce','Columbine', 'Laurel',
               'Ridge', 'Hillside', 'Park', 'Church', 'Texana','Magnolia','Lakeview', 'Hickory','Washington', 'Wilson',
               'Winchester', 'Cypress', 'Evergreen', 'Hemlock','Pleasant']
streetname2 = ['Road', 'Way', 'Street', 'Avenue','Boulevard', 'Lane', 'Drive', 'Place', 'Terrace']

street_address = "{} {} {}".format(street_number, random.choice(street_name), random.choice(streetname2))


from prettytable import PrettyTable

x = PrettyTable()

x.field_names = ["Street Adress"]

x.add_row([print(street_address)])

print(x)
 

вывод:

 124 Hillside Terrace

 --------------- 

| Street Adress |


 --------------- 

|      None     |

 --------------- 
 

(Игнорируйте формат таблицы, idk, почему она так разнесена)

Комментарии:

1. опишите проблему в теле вопроса, а не в названии. И покажите, какой результат вы ожидаете.

2. Я не понимаю, почему вы используете print() in x.add_row([print(street_address)]) print() используется только для отображения на экране (не для форматирования текста и присвоения переменной), и он всегда возвращается None — так что у вас есть x.add_row([None]) . Вы должны использовать напрямую x.add_row([street_address])

Ответ №1:

Ваша проблема print() в

 x.add_row([print(street_address)])
 

print() используется только для отправки текста на экран, а не для присвоения текста переменной. И не форматировать текст. Команда format() отформатирует текст без print() .

print() отправляет текст на экран, и он всегда возвращается None , так что у вас есть

 x.add_row([None])
 

Вы должны использовать напрямую

 x.add_row([street_address])
 

 from prettytable import PrettyTable
import random


street_number = random.randint(1,300)
street_name = ['Main', 'Apache', 'Elm', 'Cedar', 'Oak', 'Sunset', 'Willow', 'Spruce','Columbine', 'Laurel',
               'Ridge', 'Hillside', 'Park', 'Church', 'Texana','Magnolia','Lakeview', 'Hickory','Washington', 'Wilson',
               'Winchester', 'Cypress', 'Evergreen', 'Hemlock','Pleasant']
streetname2 = ['Road', 'Way', 'Street', 'Avenue','Boulevard', 'Lane', 'Drive', 'Place', 'Terrace']

street_address = "{} {} {}".format(street_number, random.choice(street_name), random.choice(streetname2))


x = PrettyTable()

x.field_names = ["Street Adress"]

x.add_row([street_address])

print(x)
 

Результат:

  -------------------- 
|   Street Adress    |
 -------------------- 
| 164 Hemlock Avenue |
 --------------------