问:

基础题:

设计一个复利计算函数invest(),它包含三个参数:amount(资金),rate(年利率),time(投资时间)。
键盘输入每个参数后,输出结果:返回每一年的资金总额
比如,amount = 10000 , rate = 8% ,time = 5

提高题:

请实现一个函数,将一个字符串中的每个空格替换成“%20”。
例如,当字符串为We Are Happy,则经过替换之后的字符串为We%20Are%20Happy。

答:

基础题:

设计一个复利计算函数invest(),它包含三个参数:amount(资金),rate(年利率),time(投资时间)。
键盘输入每个参数后,输出结果:返回每一年的资金总额
比如,amount = 10000 , rate = 8% ,time = 5

方法1:

def invest(amount,rate,time):
for i in range(1,time+1):
sum=amount*(1+rate)**i
print('第{}年总额为:{:.3f}'.format(i,sum))
return sum
a=eval(input('请输入资金:'))
r=float(input('请输入年利率:'))
t=eval(input('请输入投资时间:'))
invest(a,r,t)

方法2:

def invest(amount, rate, time):
for _ in range(time):
amount *= 1+rate
return amount def main():
amount = eval(input('输入本金:'))
rate = eval(input('输入年利率:'))
time = eval(input('投资年限:'))
print(invest(amount, rate, time)) main()

方法3:

def invest(amount, rate, time):
'''
复利计算
:return:
'''
print('本金:{}'.format(amount))
for t in range(1, time + 1):
amount = amount * (1 + rate)
print('第{}年: ¥{}'.format(t, amount)) if __name__ == '__main__':
amount = float(input("请输入资金:"))
rate = float(input("请输入年利率:"))
time = int(input("请输入投资时间:"))
invest(amount, rate, time)

方法4:

def invest():
amount = int(input('input your amount:'))
rate = float(input('rate is:'))
time = int(input('your cycle is:'))
for i in range(1, time + 1):
amount *= (1 + rate)
print('第{}年 : {}'.format(i, amount))
# return amount*(1+rate)**time if __name__ == "__main__":
invest()

提高题:

请实现一个函数,将一个字符串中的每个空格替换成“%20”。
例如,当字符串为We Are Happy,则经过替换之后的字符串为We%20Are%20Happy。

方法1:

def change(t):
i = t.replace(' ', '%20')
return i j = str(input('请输入字符串:'))
print('替换后为:{}'.format(change(j)))

方法2:

def replace_black(string):
return string.replace(" ", "%20") def main():
string = input('输入需要处理句子:')
print(replace_black(string)) main()

方法3:

# 用原生函数实现
def convert_space_to_percent_sign(s):
s = s.replace(' ', '%20')
return s print(convert_space_to_percent_sign('We Are Happy'))

方法4:

# 1.
print('We Are Happy'.replace(' ', '%20')) # 2.
import re
print(re.sub(r' ', '%20', 'We Are Happy'))

方法5:

amount = int(input("请输入金额:"))
rate = float(input("请输入年利率:"))
time = int(input("请输入投资时间(年):")) def invest(amount, rate, time):
for i in range(time):
money_every = amount * pow((1 + rate), i)
print("第{0}年的资金总额为:{1}".format(i, money_every)) invest(amount, rate, time)

Python【每日一问】37的更多相关文章

  1. [python每日一练]--0012:敏感词过滤 type2

    题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...

  2. Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词

    #coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...

  3. python每日一函数 - divmod数字处理函数

    python每日一函数 - divmod数字处理函数 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: ...

  4. 每日一问:Android 消息机制,我有必要再讲一次!

    坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 我 17 年的 面试系列,曾写过一篇名为:Android 面试(五):探 ...

  5. 每日一问:谈谈 volatile 关键字

    这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下. 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了 ...

  6. 每日一问:讲讲 Java 虚拟机的垃圾回收

    昨天我们用比较精简的文字讲了 Java 虚拟机结构,没看过的可以直接从这里查看: 每日一问:你了解 Java 虚拟机结构么? 今天我们必须来看看 Java 虚拟机的垃圾回收算法是怎样的.不过在开始之前 ...

  7. 每日一问:你了解 Java 虚拟机结构么?

    对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...

  8. 每日一问:LayoutParams 你知道多少?

    前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的.我们 ...

  9. 每日一问:简述 View 的绘制流程

    Android 开发中经常需要用一些自定义 View 去满足产品和设计的脑洞,所以 View 的绘制流程至关重要.网上目前有非常多这方面的资料,但最好的方式还是直接跟着源码进行解读,每日一问系列一直追 ...

  10. python每日一练:0007题

    第 0007 题: 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来. # -*- coding:utf-8 -*- import os def count ...

随机推荐

  1. 使用SolrJ客户端管理SolrCloud(Solr集群)

    1.使用SolrJ客户端管理SolrCloud(Solr集群). package com.taotao.search.service; import java.io.IOException; impo ...

  2. .net core 3.0中动态卸载程序集

    动态加载程序集在一些插件式的应用中非常常见,.net core 2.0中可以通过AssemblyLoadContext中提供程序集的动态加载功能,但取不支持卸载.现在,在.net core 3.0中提 ...

  3. WPF ListView ,XML

    <?xml version="1.0" encoding="utf-8" ?><PersonList> <Person Id=&q ...

  4. Linux帮助——获取帮助

    Linux帮助——获取帮助 摘要:本文主要学习了Linux众多命令中最基础的帮助命令. 介绍 作用 Linux的所有操作都可以通过命令行来完成,所以学习Linux最好从命令行开始.因为Linux的命令 ...

  5. 二十:职责链模式详解(类似于spring的hangler处理请求)

    定义:为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. “看这个定义,就是将一堆可以处理请求的对象连 ...

  6. Freemarker简单封装

    Freemarker是曾经很流行的一个模板库,它是一种通用的模板库,不仅仅可以用来渲染html. 模板可以分为两类: 只能生成特殊类型文件的模板,如jinja.django.Thymeleaf.jad ...

  7. BUUCTF 随便注

    知识点: ##堆叠注入 #预语句注入 https://www.cnblogs.com/0nth3way/articles/7128189.html#autoid-1-0-0 正则过滤了很多关键字导致无 ...

  8. 如何下载windows版的kubectl.exe文件

    github上的下载链接,不能直接下载. https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.14.md#client-b ...

  9. 网络编程socket模块subprocess模块 粘包的解决

    什么是socket? tcp 可靠地面向连接协议 udp 不可靠的,无连接的服务,传送效率高

  10. python requests访问https的链接,不打开fiddler的情况下不报错;若是打开fiddler则报ssl错误,请求中添加verify=False,会报警告;若不想看到警告,有3种方式;

    import requests# import warnings# warnings.filterwarnings("ignore") #方法一#requests.packages ...