python 2.7.3中的函数问题

时间:2015-08-21 05:37:28

标签: python function python-2.7

我是学习python的新手,我只有有限的编程经验,所以我很抱歉提出这样一个基本问题。我正在进行一个在线python教程,并希望将该程序比所要求的课程更进一步,以测试我能走多远。问题是我一直在遇到障碍。在这里阅读了一堆帖子后,我已经移动了一些东西,更改了变量名,使用了更多的函数,更少的函数,if else语句,以及玩弄/麻烦,但是收到了各种各样的错误。我将要粘贴到目前位于下方的位置,非常感谢有人在那里帮助我完成该计划。

以下是我希望该计划的内容:

  • 我希望系统提示用户输入数字。
  • 我想确保用户输入了一个号码,如果不是,我希望程序给他们一个错误并重新启动。
  • 我希望收到该号码后,程序会对该号码进行平方,然后打印答案。 (再次感谢所有的帮助)

这是我在哪里:

n1 = raw_input('Please enter your desired number:')

def n2():

    n2 = n1.isnumeric()

    return n2

def square(n2):

    squared = n2**2
    print "%d squared is %d." % (n2, squared)
    return squared    

square(n2)

2 个答案:

答案 0 :(得分:1)

n2 = raw_input("number pls\n")
while not n2.isdigit():
      print("why did you do this\n")
      n2 = raw_input("number pls\n")

print int(n2)**2

代码中的问题: 你需要一个控制结构,在正确的事情发生之前,它会反复尝试做某事。这应该让你思考" while loop。"

isnumeric不是一种方法。但你有正确的想法。

命名所有变量和函数n2不是一个很容易看到正在发生的事情的好方法..

如果你想为浮点数添加一个构造,你应该写一个函数,它接受一个字符串并返回true或false,如果它看起来像一个浮点数!这是使用函数分解您正在使用的问题的一个很好的示例 - 您知道您需要执行类似

的操作

while not (n2.isdigit or isFloat(n2)):

在这里和其他地方有一些关于如何做到这一点的好建议:)

答案 1 :(得分:0)

您可以检查是否可以转换为float如果是这样打印正方形,则打印错误。要在获得数字时重复此过程,您可以使用while循环

def number_validator( numb ):    
    try:
        float( numb )
        return True
    except Exception:
        print "GIven input is not a valid number"
        return False

def square( n2 ):
    n2=float( n2 )
    squared = n2**2
    print "%s squared is %s." % ( n2 , squared )

    return squared    
n2 = raw_input( 'Please enter your desired number:' )
while not number_validator( n2 ):
    n2 = raw_input( 'Please enter your desired number:' )

square( n2 )

<强>输出:

Please enter your desired number:wq
GIven input is not a valid number

Please enter your desired number:we
GIven input is not a valid number

Please enter your desired number:21.0
21.0 squared is 441.0.