【问题标题】:Why does my program not call other methods called by main [duplicate]为什么我的程序不调用main调用的其他方法[重复]
【发布时间】:2019-05-28 17:47:07
【问题描述】:

我只是想知道为什么我的 main 函数不调用我的用户定义的方法。我真的不确定为什么这不起作用,这是一个非常基本的问题,因为我是 python 的新手,所以放轻松。 我在 Windows 上使用 pycharm

def futurevalue():
    originalPrincipal=input("Enter original Principal: ")
    interestRate=input("Enter interest rate: ")
    N=input("Enter number of periods")
    print(originalPrincipal*((1+interestRate)**N))

def futurevalueAnuity():
    originalPrincipal = input("Enter original Principal: ")
    interestRate = input("Enter interest rate: ")
    N = input("Enter number of periods")
    print(originalPrincipal*((((1+interestRate)**N)-1)/interestRate))

def main():
    kill=0
    while kill!=-1:
        menucontrol=1
        menucontrol=input("Enter \n1 to find the futuer value of a sum of 
money\n"
              "2 to find the futuere value of an anuity\n"
              "3 to quit\n")
        if menucontrol==1:
            futurevalue()
        elif menucontrol==2:
            futurevalueAnuity()
        else:
            kill=-1



if __name__=='__main__':
    main()

【问题讨论】:

  • input 返回一个字符串。字符串永远不会等于数字。
  • 你能详细说明一下吗? according to this website 输入用于整数。您对整数或浮点数有何建议?
  • 将用户输入从str 转换为int: menucontrol=int(input("Enter \n1.... "3 to quit\n"))
  • 您的网站向您展示了 Python 2 语法(您可以通过 raw_input 知道),这是一个较旧的版本,因为在不到一年的时间内就停止了维护。 Check this 2 和 3 之间的输入差异。
  • @DisplayName 随 Python 3 更改。 Raw_input 不再有效,只能使用输入,默认情况下以字符串形式读入。您可以将输入的字符串转换为 int。当您尝试运行程序时,您的程序在做什么?您是否收到错误消息或只是不正确的结果?

标签: python python-3.x main


【解决方案1】:

您链接的网站讨论了input()raw_input() 之间的区别,如在Python 2 中实现的那样。您的问题是针对Python 3,它的实现方式不同。

在 Python 3 中,input 返回一个类型 str

>>> age = input("What is your age? ")
What is your age? 100
>>> type(age)
<class 'str'>

所以你的条件是检查str == int,没有一个会成功。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 2011-01-01
    • 2013-05-16
    相关资源
    最近更新 更多