首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一次又一次地乘以数字的程序

一次又一次地乘以数字的程序
EN

Code Review用户
提问于 2015-01-08 05:06:44
回答 2查看 2.4K关注 0票数 2

希望能对此进行回顾。这个程序确实能按计划工作。但是,我不确定是否有一种更优雅或更好的方法来使用更少的代码来执行这个过程。

代码语言:javascript
运行
复制
def main():

    print ('This program takes two numbers and multiplies them.') 
    print ('the result is multiplied by a third number') 
    print ('entered by the user too') 

    procedure()

def procedure():

    n = float(input('Enter a number: '))
    n2 = float (input('Enter a number: '))        
    value = n * n2
    y = value
    print value

    n3 = float(input('Multiply by: '))

    while n3 != '0':

        op = n3 * y  
        y = op        
        print y

        n3 = float(input('Multiply by: '))

main()
EN

回答 2

Code Review用户

发布于 2015-01-08 07:30:41

无限环

您的程序是一个无限循环,因为浮点数永远不等于字符串。

既然您声称这个程序按预期工作,那么我就会相信您的话,并说循环应该使用while True: …编写。

变量和函数

有太多的变量被使用没有好的理由。特别是yvalue是多余的。

变量名没有意义,您的函数名也没有意义。

习惯上使用样板if __name__ == '__main__': …介绍您的主要代码。

输入/输出

你做了多次float(input(…))。将其提取到函数中是值得的。

要打印多行字符串,请编写一个"""multiline string"""。在这种情况下,字符串可以作为程序的docstring执行双重任务,所以我将这样编写它。

建议实现

代码语言:javascript
运行
复制
"""This program takes two numbers and multiplies them.
the result is multiplied by a third number
entered by the user too"""

def prompt_float(prompt):
    return float(input(prompt))

def repeated_multiply():
    product = prompt_float('Enter a number: ') * \
              prompt_float('Enter a number: ')
    while True:
        print(product)
        product *= prompt_float('Multiply by: ')

if __name__ == '__main__':
    print(__doc__)
    repeated_multiply()
票数 4
EN

Code Review用户

发布于 2015-01-08 06:30:24

变量名称:

  • 对变量有一个有意义的名称,而不是nn3等。相反,productmultiplier等就更好了。

其他:

  • 使用单一打印而不是多次打印。行间隔(‘\n’)将是有用的。
  • 如果y = 0来自n * n2,那么它就是一个徒劳无益的乘法循环。
  • 相同用途的多个变量:valueyop
票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/76940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档