? по Python

Discussion in 'PHP' started by VIP, 21 Sep 2008.

  1. VIP

    VIP Elder - Старейшина

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    Не нашёл на сайте раздела для Python, но думаю здесь тема ближе всего.

    Я с этого года поступил на программиста в универ. И пока только начинаю программировать. А вопрос у меня возник такой: как запустить исходник на Python?

    Я делаю следующим образом:
    1. Установил Python 2.5 для Windows.
    2. В блокноте напечатал

    3. Сохранил файл под именем 1.py
    4. Запустил Python (command line) (появилось ">>>")
    5. Напечатал 1.py (так как файл лежит в папке с Python'ом)
    6. Он мне выдал
    Как мне запустить исполнение проги из файла. Главное если я печатаю всё в самом Python построчно, то всё работает.

    Заранее спасибо!

    P.S. Почему на этом форуме не обсуждается Python? Ведь это, как я понял, тоже довольно сильный язык?
     
  2. Rejjin

    Rejjin Elder - Старейшина

    Joined:
    20 Jul 2008
    Messages:
    83
    Likes Received:
    46
    Reputations:
    0
    Traceback (innermost last):
    File "\1.py", line 5, in <module>
    print "%d + %d = %d" (a, b, a+b)
    <type 'exceptions.TypeError'>: 'str' object is not callable
    у меня короче такая ошибка, но 2 окна ввода появляются
     
  3. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    395
    Reputations:
    297
    >> А вопрос у меня возник такой: как запустить исходник на Python?

    В командной строке windows cd c:\Python25 (или где там у вас python)

    а потом набираете

    python.exe 1.py

    >> (появилось ">>>")

    просто вы не ввели с первого раза при запуске имя файла. я выше написала как по-нормальному запустить. а чем не устраивает просто открыть файл с расширением *.py? обязательно хотите через командную строку. ну как хотите

    и вообще

    print '%d + %d = %d' % (a, b, a+b)

    так надо, а то не проробит
     
    #3 0x0c0de, 21 Sep 2008
    Last edited: 21 Sep 2008
    1 person likes this.
  4. Rejjin

    Rejjin Elder - Старейшина

    Joined:
    20 Jul 2008
    Messages:
    83
    Likes Received:
    46
    Reputations:
    0
    print 'Please, enter a'
    a = input()
    print 'Please, enter b'
    b = input()
    print "%d + %d = %d" %(a, b, a+b)
    держи
     
  5. VIP

    VIP Elder - Старейшина

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    Большое спасибо! Помогло! А через командную строку мне надо, так как иначе он выдаёт ответ действия и тут же закрывает окно (то есть я не успеваю просмотреть результат).

    Ещё раз БОЛЬШОЕ спасибо!
     
  6. 0x0c0de

    0x0c0de Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    441
    Likes Received:
    395
    Reputations:
    297
    чтобы успевали в конце кода напишите

    input()

    и запускайте py-файл


    Code:
     
    print 'Please, enter a'
    a = input()
    print 'Please, enter b'
    b = input()
    print '%d + %d = %d' % (a, b, a+b)
    input()
    
    как вариант застоппить так
     
  7. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    637
    Likes Received:
    519
    Reputations:
    19
    если хочешь запустить именно через cmd, а не интерпретатор питона, просто открой ком.строку и закинь туда файл drag'n'drop-ом
     
  8. VIP

    VIP Elder - Старейшина

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    Большое спасибо за совет! Дейстивтельно гораздо удобнее! :)
     
  9. VIP

    VIP Elder - Старейшина

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    У меня возникло ещё два вопроса. Дело в том, что нам сказали в начале каждой программы добавлять две строки:

    Первая нужна только для Linux, а вот вторая для назначения кодировки. Вот только не могу никак сделать, чтобы эти строчки заработали. Думаю, что я напутал с пробелами (где-то не хватает, где-то лишние). :confused:

    Подскажите, пожалуйста, как правильно!
     
  10. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    Если ты под виндой, то и кодировку соответствующую ставь:
    Code:
    #!/usr/bin/python
    # -*- coding: cp1251 -*-
     
    1 person likes this.
  11. Larionich

    Larionich Member

    Joined:
    21 Sep 2008
    Messages:
    15
    Likes Received:
    5
    Reputations:
    0
    Один способ.
    cd <папка с исходниками>
    Запускаешь в командной строке python2.5 (например c:\python2.5, как у тебя сам знаешь)
    Пишешь >>> execfile('test.py')
    Другой способ.
    (Для более частого использования)
    В твой test.py записываешь:
    Code:
    def main():
      print 'Please, enter a'
      a = input()
      print 'Please, enter b'
      b = input()
      print '%d + %d = %d' % (a, b, a+b)
    
    Это уже твой модуль. Из него можно вызывать функцию main()
    cd <папка с исходниками>
    Запускаешь в командной строке python2.5
    >>> import test.py
    >>> test.main() #Вот так мы вызываем нашу функцию
    Если же нужно быстро вызвать фунцию, можно сделать следующее (но перед этим повторить шаги "Другого способа"):
    >>> z=test.main #Присвоить локальное имя
    >>> z() #вызываем нашу функцию
    Написал, как можно понятнее, разберешься.
     
  12. VIP

    VIP Elder - Старейшина

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    У меня ещё один вопрос:

    Мне нужно задать в программе Гравитационную постоянную G = 6.672*10^(-11). Как мне это сделать. Нам объясняли на лекциях, что в питоне не нужно объявлять типы переменных, что мол они всегда определяются сами. Но как мне присвоить переменной G значение 6.672*10^(-11)?
     
  13. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    G = 6.672*10**-11
     
    1 person likes this.
  14. VIP

    VIP Elder - Старейшина

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    Большое спасибо!

    У меня снова вопрос: В чём ошибка кода???

    Пишет, что мол неподдерживаемая операция над переменными такого типа (это я так прочитал)

    Это программа для расчёта силы взаимного притяжения. G - это гравитационная постоянная.

    P.S. Может быть существует в питоне какой-нить список констант (типа пи, g или G)??? И если да то как его вызвать?
     
  15. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    727
    Reputations:
    266
    а зачем ты ксоришь на 2? о_О
    Может тебе нужно возведение в степень?
     
  16. VIP

    VIP Elder - Старейшина

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    а что значит ксорить?
     
  17. nitx

    nitx Elder - Старейшина

    Joined:
    4 Jan 2008
    Messages:
    214
    Likes Received:
    31
    Reputations:
    10
    в модуле math было что то.
    я может уже не помню, но возведение в степень не ^ а **
     
  18. VIP

    VIP Elder - Старейшина

    Joined:
    29 Dec 2004
    Messages:
    104
    Likes Received:
    3
    Reputations:
    0
    а что значит ксорить?
     
  19. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    >> а что значит ксорить?

    Не знаю, что это, но слышал, что тру хеккеры умеють ксорить в уме целые дворды! Только не спрашуй, что такое "дворды" - все равно тут никто не знает. И в гугле хрен найдешь значения этих слов. )

    Может, тебе книжку про программированию на пайтоне стоит почитать для начала? )
     
  20. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    727
    Reputations:
    266
    http://ru.wikipedia.org/wiki/Xor