Python - отправить функцию в текстовый документ - PullRequest
0 голосов
/ 26 марта 2011

Используя Python версии 2.x, я пытаюсь поместить содержимое функции в текстовый документ. Может кто-нибудь, пожалуйста, подтолкнуть меня в правильном направлении, где искать. Мой код на данный момент выглядит так:

def Main():
    Class_AInput = int(raw_input('Enter Class A tickets sold: '))
    total_profit(Class_A_Input)

def total_profit(Class_A_Tickets):
    print (Class_A_Ticktes * 15)
    text_file = open('test.txt', 'w')
    text_file.write('Output: %s' % total_profit)
    text_file.close()

Main()

Спасибо за любую помощь.

Ответы [ 3 ]

1 голос
/ 26 марта 2011

Я изменил ваш синтаксис. Я думаю, вам нужно сначала преобразовать int в строку

def Main():
    Class_A_Input = int(raw_input('Enter Class A tickets sold: '))
    total_profit(Class_A_Input)

def total_profit(Class_A_Tickets):
    print (Class_A_Tickets * 15)
    a = Class_A_Tickets * 15
    b = str(a)
    text_file = open('test.txt', 'w')
    text_file.write(b)
    text_file.close()

Main()
0 голосов
/ 25 июля 2012

С вашим текстовым редактором возникли проблемы. Я думаю, вы когда-нибудь использовали редактор UNICODE при редактировании файла? Какой тестовый редактор вы использовали?

Была также необъявленная переменная ... вот ее рабочая версия ...

def Main():
    Class_A_Input = int(raw_input('Enter Class A tickets sold: '))
    total_profit(Class_A_Input)

def total_profit(Class_A_Tickets):
    print Class_A_Tickets * 15
    total_profit = Class_A_Tickets * 15
    text_file = open('test.txt', 'w')
    text_file.write('Output: %i' % total_profit)
    text_file.close()

Main()

Просто совет от такого же новичка :) Старайтесь не использовать этот тип или структуру кода в Python. Язык сделан для упрощения программирования ...

0 голосов
/ 26 марта 2011

Так что трудно точно знать, с чего начать. У вас есть несколько опечаток в коде, который вы ввели в свой вопрос (включая неправильное написание имен ваших переменных и параметров), и вы записываете ссылку на функцию в свой выходной файл, а не записываете какой-либо результат.

Кроме того, ваш код не соответствует общепринятым правилам кодирования Python.

Вот довольно грубая, но работающая версия того, что вы пытаетесь сделать:

 #!/usr/bin/env python

 def Main():
     Class_A_Input = raw_input('Enter Class A tickets sold: ')
     try:
         Class_A_Input = int(Class_A_Input)

     except ValueError, e:
         print "Unable to parse int(%s): %s" % (Class_A_Input, e)

     else:
         total_profit(Class_A_Input)

 def total_profit(Class_A_Tickets):
     result = Class_A_Tickets * 15
     print result
     text_file = open('test.txt', 'w')
    text_file.write('Output: %s\n' % result)
    text_file.close()

 if __name__ == '__main__':
     Main()

Обратите внимание на некоторые различия:

  • включая #! обычная строка, позволяющая запускать этот код в системах UNIX / Linux / MacOS X. (Это будет рассматриваться как комментарий к другим системам).
  • исправлены очевидные опечатки (имена переменных и параметров)
  • отделил raw_input от попытки разобрать это в целое число и обернул эту попытку в простой блок обработки исключений
  • отделил вычисление от print и связал его с локальным именем («назначил его локальной переменной» на более распространенном языке программирования; существуют технические нюансы, которые отличают привязку имени от назначения переменной, но это очень вне уровня обсуждения)
  • изменил вызов .write() для интерполяции результирующего значения в его вывод, а не ссылки на включающую функцию
  • добавил if __name__ == '__main__': и вставил вызов Main() в свой набор в соответствии с преобладающим обычаем Python

В целом это будет работать, и это должно выглядеть как скрипт Python. Тем не менее, это все еще некрасиво.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...