2017-01-10 3 views
0

В классе мы работаем над функциями, которые вычисляют площадь квадрата или прямоугольника. Программа запрашивает имя человека, какую форму они хотят и какова длина и ширина. Затем он печатает область этой формы, и программа снова возвращается назад. То, что я хочу сделать, это взять каждый отдельный вход и область имени и вывести их в текстовый файл. Наш учитель не слишком четко понимал, как это сделать. Любая помощь будет оценена по достоинству. Вот код:Я пытаюсь поместить эти входы в текстовый файл,

import time 

def area(l, w): 
    area = l * w 
    return area 

def square(): 
    width = int(input("please enter the width of the square")) 
    squareArea = area(width, width) 
    return squareArea 

def rectangle(): 
    width = int(input("please enter the width of the rectangle")) 
    length = int(input("please enter the length of the rectangle")) 
    rectangleArea = area(length, width) 
    return rectangleArea 

def main(): 
     name = input("please enter your name") 
     shape = input("please enter s(square) or r(rectangle)") 
     if shape == "r" or shape =="R": 
      print ("area =", rectangle()) 
      main() 
     elif shape == "s" or shape == "S": 
      print ("area =", square()) 
      main() 
     else: 
      print ("please try again") 
      main() 
main() 

Редактировать: Не думаю, что я задал вопрос достаточно ясно, извините. Я хочу иметь возможность вводить что-то, например. имя и возможность помещать его в текстовый файл.

+0

Вы хотите получить входы * от * текстовый файл или вы хотите отправить вывод * в * текстовый файл? – Barmar

+0

отправить результат в текстовый файл –

ответ

0

This - это то, что вы ищете. Строка file = open('file.txt', 'w') создает файл переменной, в котором хранится файл-объект, представляющий 'file.txt'. Второй аргумент, w, сообщает функции открыть файл в «режиме записи», что позволяет редактировать его содержимое. После этого вы можете просто использовать f.write('Bla\n') для записи в файл. Конечно, замените Bla тем, что вы хотите добавить, что может быть вашей строковой переменной. Обратите внимание, что эта функция по умолчанию не делает новую строку, поэтому вам нужно добавить \n в конце, если это то, что вы хотите.

ВАЖНО: Как только вы закончите с файлом, обязательно используйте file.close(). Это приведет к удалению файла из памяти. Если вы забудете сделать это, это будет не конец света, но это всегда должно быть сделано. Несоблюдение этого является распространенной причиной использования высокой памяти и утечки памяти в программах для начинающих.

Надеюсь, это поможет!

Редактировать: Как упоминалось в MattDMo, лучше всего открыть файл, используя оператор with.

with open("file.txt", 'w') as file: # Work with data

Это абсолютно уверены, что доступ к файлу изолируется к этому with заявление. Спасибо MattDMo, чтобы напомнить мне об этом.

+0

Где я могу увидеть файл после? –

+0

Вы должны всегда использовать диспетчер контекста 'with' при работе с файловым вводом/выводом. – MattDMo

+0

'' file.txt'' будет создан в том же каталоге, в котором был создан скрипт. Если вы хотите, чтобы он находился где-то в другом месте, вы можете указать файл в каталоге внутри того, где находится скрипт, или вы можете указать весь путь к любому файлу на вашем компьютере. Вы можете получить доступ к этому файлу, как и любой другой текстовый файл после его создания. –

0

Легкий способ:

file_to_write = open('myfile', 'w') # open file with 'w' - write permissions 
file_to_write.write('hi there\n') # write text into the file 
file_to_write.close() # close file after you have put content in it 

Если вы хотите, чтобы убедиться, что файл закрывается после того, как вы закончили все операции с ней использовать следующий пример:

with open('myfile.txt', 'w') as file_to_write: 
    file_to_write.write("text")