代码之家  ›  专栏  ›  技术社区  ›  MeachamRob

用于简单指数计算的Python模块

  •  0
  • MeachamRob  · 技术社区  · 11 年前

    我有一个简单的Python程序,我正在开发,我对编程很熟悉,但工作不太顺利。我还在学习模块和功能,但这里是程序要求。我很难理解程序的导入和调用部分以及Module参数参数以及全局变量和局部变量。我还在学习,所以任何反馈或建议都会很有帮助。我的书似乎大部分是用伪代码编写的,而不是实际的Python代码,这让人感到困惑。

    ''' 
    Write a program that has thee modules:
    
    1) the first module takes two numbers from the user
    
    2) the second module calculate firstNumber to the power of secondNumber and prints it
    
    3) the third module will print 'end of program'
    '''
    
    Module main()
        #Global Variables 
        Declare Integer num1
        Declare Integer num2
        #Welcome Exponent Power Program 
        Print ('Welcome to the Exponent Powers Program.')
        Call askNumbers(num1, num2)
        Call numberPower
        Call endProgram
    End Module   
    
    #This program gets the 2 numbers from the user
    Module askNumbers(Integer num1, Integer num2)
        num1 = int(raw_input('Enter Number : '))
        num2 = int(raw_input('Enter Raised Power Number: '))
    End Module
    
    Module numberPower(int num1, int num2)
        Declare Int expTotal 
        Set expTotal = (num1**num2)
        Print(expTotal)
    End Module
    
    Module endProgram()
        Print('End of Program')
    End Module
    

    帮了大忙,再次感谢您抽出时间。

    3 回复  |  直到 11 年前
        1
  •  0
  •   flakes    11 年前

    每个模块将是一个单独的 .py 文件 当你打电话时 import <module name> 它将从上到下运行模块,添加所有存在的函数/参数定义,如果是第一次导入,则运行任何代码

    如果我有一个模块:

    foo.py

    print "foo"
    

    当我导入foo时,将执行一个操作,因此您将看到

    闲置的

    >>> import foo
    foo
    >>>
    

    如果我将其放在函数中,则不会打印任何内容,但是我可以使用foo模块名称下的函数

    foo.py

    def foo():
        print "foo"
    

    闲置的

    >>> import foo
    >>> foo.foo()
    foo
    # or using the from keyword I can get the function as just foo
    >>> from foo import foo
    >>> foo()
    foo
    

    如果我想从另一个模块调用foo,请说 bar.py ,我会这样做

    巴.py

    from foo import foo
    foo()
    print "bar"
    

    闲置的

    >>>import bar
    foo
    bar
    >>>
    

    因此,在您的案例中:

    模块1.py

    a = int(raw_input("enter number 1: "))
    b = int(raw_input("enter number 2: "))
    

    模块2.py

    from module1 import a, b
    print a**b
    

    模块3.py

    import module2
    print 'end of program'
    

    闲置的

    >>> import module3
    enter number 1: 2
    enter number 2: 3
    8
    end of program
    >>>
    
        2
  •  0
  •   Joran Beasley    11 年前

    全部替换 Module 具有 def

    全部删除 End Module

    添加冒号( : )到每个结尾 定义 线

    全部删除 Set

    改变 Print print

    删除单词 int Integer

    上面说的任何地方 call some_module 替换为 some_module()

    删除任何 Declare 线

    我想你有蟒蛇

    如:

    Module endProgram()
        Print('End of Program')
    End Module
    

    变成

    def endProgram():
        print "End of Program"
    

    它使用伪代码的原因(我甚至不确定伪代码看起来像pascal或类似的东西(可能是vbasic))是因为他们试图教你概念,而不仅仅是如何复制和粘贴

    快速的谷歌搜索发现这实际上是Visual Basic

        3
  •  0
  •   MeachamRob    11 年前
    #This askNumber Module gets the 2 numbers from the user, and calls these 2
    def askNumbers():
        print 'Welcome to Python Exponent Program'
        num1 = int(raw_input('Enter Number 1: '))
        num2 = int(raw_input('Enter Raised to Power Number 2: '))
        numberPower(num1, num2)
    
    #This numberPower is the exponent calculation module   
    def numberPower(num1, num2):
        expTotal = (num1**num2)
        print('Number 1 to the power of Number 2 is: ', expTotal)
    
    #This module prints end Program    
    def endProgram():
        print 'End of Program'
    
    askNumbers() 
    endProgram()   
    
    #test 5^5: 3125
    #test 3^4: 81
    #test 7^6: 117649
    #test 2^2: 4