от
Я пытаюсь напечатать два отдельных индекса из двух разных кортежей в одной строке. но когда я печатаю, используя f-строки, он помещает второй индекс, который я печатаю, в новую строку. Кажется, не могу понять это, независимо от того, что я пытаюсь это всегда печатает на новой строке фамилию.
surnames = tuple(open("Surnames.txt", "r"))
first_names_male = tuple(open("Male_names.txt", "r"))
first_names_female = tuple(open("Female_names.txt", "r"))

print(f"{first_names_male[0]} {surnames[0]}")
Следует распечатать «Дэвид Смит» все в одну строку Вместо этого он показывает Дэвида в первой строке, затем в следующей строке есть пробел, а затем Смит              

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

2 Ответы

0 голосов
от
Вы можете использовать такой код, чтобы удалить новые строки в конце каждой строки в файле и явно закрыть файлы:
with open("Surnames.txt", "r") as f:
    surnames = f.read().splitlines()
with open("Male_names.txt", "r") as f:
    first_names_male = f.read().splitlines()
with open("Female_names.txt", "r") as f:
    first_names_female = f.read().splitlines()

print(f"{first_names_male[0]} {surnames[0]}")
Или что-то вроде этого, если вы предпочитаете:
with open("Surnames.txt", "r") as f:
    surnames = map(str.rstrip, f)
    # or
    surnames = [r.rstrip('\n') for r in f]
Дополнительные параметры см. На странице https://stackoverflow.com/a/12330535/3830997.     
0 голосов
от
Это будет лучше обрабатывать файлы, потому что он также закрывает файлы и удаляет переводы строк в конце каждой строки.
def func(filename):
    line_list = []

    with open(filename) as f:
        for line in f:
            line = line.strip()
            if len(line)
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...