You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

HyperionDev变量与控制结构Capstone 1项目:金融计算器选项功能实现求助

HyperionDev变量与控制结构Capstone 1项目:金融计算器选项功能实现求助

Hey sunil-rohra,我之前帮同学搞定过这个HyperionDev的金融计算器项目,你的问题刚好是很多新手会卡的点——选项分支的逻辑处理对吧?别担心,咱们一步步来把它捋顺!

一、先搞定主菜单:投资(Investment)/ 贷款(Bond)选项切换

首先要处理用户的主选择,这里要注意一个细节:用户可能输入大小写混合的内容(比如"Investment"或者"BOND"),所以最好把输入统一转成小写/大写,避免匹配失败。

示例代码片段:

# 显示主菜单
print("欢迎使用金融计算器!")
print("请选择要进行的计算:")
print("investment - 投资收益计算")
print("bond - 房屋贷款还款计算")

# 获取用户选择并统一格式
user_choice = input("请输入你的选择:").strip().lower()

# 根据选择进入对应模块
if user_choice == "investment":
    print("进入投资收益计算模块")
    # 这里后续会补投资模块的逻辑
elif user_choice == "bond":
    print("进入房屋贷款还款计算模块")
    # 这里后续会补贷款模块的逻辑
else:
    print("无效的选择,请重新输入!")

解释:用strip()去掉输入前后的空格,lower()把所有输入转成小写,这样不管用户怎么输入大小写组合,都能正确匹配。如果输入错误,也会给出提示,增强容错性。

二、投资模块里的单利(Simple)/复利(Compound)选项实现

当用户进入投资模块后,接下来要处理利息类型的选择,逻辑和主菜单类似,同样要处理大小写问题,然后用对应的公式计算收益。

先回忆下公式:

  • 单利:总金额 = 本金 × (1 + 年利率 × 投资年限)
  • 复利:总金额 = 本金 × (1 + 年利率)^投资年限(需要用到math模块的幂函数)

示例代码(接上面的investment分支):

import math

# 获取投资相关参数
deposit = float(input("请输入存入的本金金额:"))
annual_rate = float(input("请输入年利率(仅输入数字):")) / 100  # 转成小数格式
years = int(input("请输入投资年限:"))

# 获取利息类型选择
interest_choice = input("请选择利息类型(simple/compound):").strip().lower()

# 根据选择计算并输出结果
if interest_choice == "simple":
    total_amount = deposit * (1 + annual_rate * years)
    print(f"投资{years}年后的总金额为:{round(total_amount, 2)}")
elif interest_choice == "compound":
    total_amount = deposit * math.pow((1 + annual_rate), years)
    print(f"投资{years}年后的总金额为:{round(total_amount, 2)}")
else:
    print("无效的利息类型选择,请重新操作!")

三、贷款(Bond)模块的逻辑补全

当用户选择bond时,需要计算每月还款额,公式是:每月还款额 = (月利率 × 房屋现值) / (1 - (1 + 月利率)^(-还款月数)),这里要注意把年利率转成月利率。

示例代码(接上面的bond分支):

# 获取贷款相关参数
house_value = float(input("请输入房屋的现值:"))
annual_rate = float(input("请输入年利率(仅输入数字):"))
repay_months = int(input("请输入计划还款的月数:"))

# 计算月利率
monthly_rate = (annual_rate / 100) / 12

# 计算每月还款额
monthly_repayment = (monthly_rate * house_value) / (1 - (1 + monthly_rate)**(-repay_months))
print(f"每月需还款金额为:{round(monthly_repayment, 2)}")

四、整合完整可运行的代码

你可以把这些部分整合起来,再加个循环让用户能重复计算(可选),比如:

import math

while True:
    # 主菜单
    print("\n=== 金融计算器 ===")
    print("可选计算类型:")
    print("investment - 投资收益计算")
    print("bond - 房屋贷款还款计算")
    print("quit - 退出计算器")
    
    user_choice = input("请输入你的选择:").strip().lower()
    
    if user_choice == "quit":
        print("感谢使用,再见!")
        break
    
    elif user_choice == "investment":
        print("\n=== 投资收益计算 ===")
        deposit = float(input("存入本金:"))
        annual_rate = float(input("年利率(数字):")) / 100
        years = int(input("投资年限:"))
        interest_choice = input("利息类型(simple/compound):").strip().lower()
        
        if interest_choice == "simple":
            total = deposit * (1 + annual_rate * years)
        elif interest_choice == "compound":
            total = deposit * math.pow(1 + annual_rate, years)
        else:
            print("无效的利息类型,请重新选择!")
            continue
        
        print(f"投资{years}年后总金额:{round(total, 2)}")
    
    elif user_choice == "bond":
        print("\n=== 房屋贷款还款计算 ===")
        house_value = float(input("房屋现值:"))
        annual_rate = float(input("年利率(数字):"))
        repay_months = int(input("还款月数:"))
        
        monthly_rate = (annual_rate / 100) / 12
        monthly_repayment = (monthly_rate * house_value) / (1 - (1 + monthly_rate)**(-repay_months))
        
        print(f"每月还款金额:{round(monthly_repayment, 2)}")
    
    else:
        print("无效的选择,请重新输入!")

备注:内容来源于stack exchange,提问作者sunil-rohra

火山引擎 最新活动