Я пытался выяснить, как поместить текстовый файл случайным образом выбирает слово и печатает все это в 1 строке из 3 различных текстовых файлов, что сделано, но я не могу поместить его в 1 строку? его каждый раз помещать в новую строку? слова все в столбцах в текстовых файлах. ГОЛОВЫ IM С ИСПОЛЬЗОВАНИЕМ PYTHON IDLE !!

###############
import random 
import time    #Importing so some bits of code works
import sys    
###############

#The main game and generator
def main():

    #Gets text files from the folder and randomly picks a line of the text
    with open("column1.txt") as A:
        A = random.choice(list(A))
    with open("column2.txt") as B:
        B = random.choice(list(B))
    with open("column3.txt") as C:
        C = random.choice(list(C))

    print("\nThou\n"A+B+C)

    time.sleep(2)

    print("Restarting...\n")

    menu()

#Menu System
def menu():
    print("===Menu===")
    print("Choose 1 to start the abuse generator.")
    print("Choose 2 to exit.")
    choice = input("Please choose one: ")

    if choice == "1":
       main()

    elif choice == "2":
        sys.exit()

    else:
        print("Error!")

#Go's to the menu that is defined as menu above
menu()

Это результат:

===Menu===
Choose 1 to start the abuse generator.
Choose 2 to exit.
Please choose one: 1

Thou
 lumpish
  tdizzy-eyed
  thugger-mugger

Restarting...

Вот колонка 1:

artless
bawdy
beslubbering
bootless
churlish
cockered
clouted
craven
currish
dankish
dissembling
droning
errant
fawning
fobbing
froward
frothy
gleeking
goatish
gorbellied
impertinent
infectious
jarring
loggerheaded
lumpish
mammering
mangled
mewling
paunchy
pribbling
puking
puny
quailing
rank
reeky
roguish
ruttish
saucy
spleeny
spongy
surly
tottering
unmuzzled
vain
venomed
villainous
warped
wayward
weedy
yeasty
1
Not Lui 14 Дек 2015 в 14:44

3 ответа

Лучший ответ

Похоже, вам нужно разбить ваши файлы на строки в символе новой строки:

with open("column1.txt") as A:
    A = random.choice(A.read().split('\n'))
with open("column2.txt") as B:
    B = random.choice(B.read().split('\n'))
with open("column3.txt") as C:
    C = random.choice(C.read().split('\n'))

Вы также можете вызывать оператор print по-другому, поэтому он добавляет пробелы:

 print("\nThou\n", A, B, C)

Чтобы это работало на Python 2, вам нужно использовать from __future__ import print_function или опустить фигурные скобки.

-1
Panda 1 Мар 2016 в 09:48

Чтобы поместить многострочные строки в одну строку, вы можете сделать

with open("column1.txt") as A:
    A = random.choice(list(A))
with open("column2.txt") as B:
    B = random.choice(list(B))
with open("column3.txt") as C:
    C = random.choice(list(C))

print " ".join((A + B + C).splitlines())

str.splitlines() создает список строк, каждая из которых представляет собой одну строку многострочной строки. Разрывы строк удаляются, а несколько слов в одной строке не разделяются ().

0
Raimund Krämer 14 Дек 2015 в 12:19

Прежде всего, есть синтаксическая ошибка:

print("\nThou\n"A+B+C)

Должно быть

print("\nThou\n"+A+B+C)

Образец кода:

A = "Some random Text1"
B = "Some random Text2"
C = "Some random Text3"
print("\nThou\n",A,B,C)

Выход:

Thou
Some random Text1 Some random Text2 Some random Text3

Пожалуйста, дайте мне знать, если у вас есть другие вопросы по этому вопросу

0
Prayas Malik 14 Дек 2015 в 11:57