我在一个非常简单的while循环中遇到了问题,但不是另一个。
大家好,这是我的第一篇帖子,所以我希望我做得对。我刚刚开始学习如何编程,所以如果我的错误很明显,我很抱歉,但我似乎找不到答案。
我在一个测试程序中创建了一个非常简单的While循环,它通过一个简单的计算来确定你的约会范围,然后问你是否想再试一次,然后重复这个问题,直到你拒绝。它工作得很完美。我试着在一个非常简单的程序中做同样的事情,这个程序基本上只计算复利,但While循环似乎工作起来并不相同,尽管它与我的"约会年龄"程序几乎相同。
以下是我使用复利程序时的输出/错误消息:
选择 | 换行 | 行号
- Hello.
- Would you like to try? Please enter yes or no: yes
- How old are you? 19
- Please enter cash value: 10000
- Please enter interest rate in the form of a decimal: .1
- What age would you like to check your worth? 35
- Here is your worth: 45949.7298636
- Here is your profit: 35949.7298636
- Would you like to try again? yes
- Traceback (most recent call last):
- File "/Users/johnhutchison/Documents/worth.py", line 4, in <module>
- while decision in y:
- TypeError: argument of type 'int' is not iterable
- logout
- [Process completed]
以下是我的"约会年龄"程序的代码,它运行得很好:
选择 | 换行 | 行号
- print "Welcome! Let's see who you can date!"
- y = [ 'yes', 'y', 'Yes', 'Y' ]
- decision = raw_input("Would you like to try? Please enter yes or no: ")
- while decision in y:
- age = input("Please enter age: ")
- age_min = age / 2 + 7
- age_max = (age - 7) * 2
- print "Your dating range is between:", age_min, "and", age_max
- decision = raw_input("Would you like to try again? Please enter y or n: ")
- raw_input("Thank you! Press Enter to exit.")
以下是我的复利计划的代码,它似乎不起作用:
选择 | 换行 | 行号
- print "Hello."
- y = [ 'yes', 'y', 'Yes', 'Y' ]
- decision = raw_input("Would you like to try? Please enter yes or no: ")
- while decision in y:
- age = input("How old are you? ")
- p = input("Please enter cash value: ")
- i = input("Please enter interest rate in the form of a decimal: ")
- y = input("What age would you like to check your worth? ") - age
- cash_worth = p * (1 + i)**y
- profit = cash_worth - p
- print "Here is your worth:", cash_worth
- print "Here is your profit:", profit
- decision = raw_input("Would you like to try again? ")
- raw_input("Press Enter to leave")
我也意识到我的复利计划还有其他明显的问题,比如不舍入小数,但我只是用这个来学习,所以我一次只处理一件事。
非常提前感谢您的帮助!