求解一道Python编程题

编写程序,实现以下功能:(1)创建空字典dic_student.(2)用户按行依次输入五名学生的姓名和年龄,存入字典dic_student。(3)按行输出字典dic_st... 编写程序,实现以下功能:(1)创建空字典dic_student.(2)用户按行依次输入五名学生的姓名和年龄, 存入字典dic_student。 (3)按行输出字典dic_student中的内容, 姓名左对齐三位,和年龄之间用\t分隔。 展开
 我来答
雁西楼
科技发烧友

2020-04-22 · 有一些普通的科技小锦囊
知道小有建树答主
回答量:1118
采纳率:73%
帮助的人:408万
展开全部

斐波那契数列自第三个数开始,每个数均为之前两个数的和。

至少有两种方法来实现它。

最常见的利用迭代的方法,其核心思路是

fib(n) = fib(n-1) + fib(n-2)

而在n<2时直接,没有n-2,因此直接返回1:

def fib(num): return 1 if n<2 else fib(num-1) + fib(num-2)

这是一种很简单的实现。在阶梯数不大时,它很好用。当阶梯数很大时,因为二次手迭代,会比较慢。因此,可以在计算中保存中间值(1至n-1的阶梯数)来减少计算量:

这种方式在计算阶梯数10000时就可以保持不错的性能。如果需要多次计算该数列,则可以利用对象来保持这个中间值列表,下列代码中,Fibonaci实例只计算未曾计算的阶梯数,在重复调用时它更具优势:

class Fibonaci(object):

....history=[1, 1]

....def cacl(self, num):

........while len(self.history) <= num:

............self.history.append(self.history[-1] + self.history[-2])

........return self.history[num]

if __name__ == '__main__':

....fib = Fibonaci()

....print(fib.calc(100))

....print(fib.calc(32))

....print(fib.calc(10000))

gamemode0123
2020-04-22 · TA获得超过535个赞
知道小有建树答主
回答量:264
采纳率:84%
帮助的人:25.6万
展开全部

dic_student = {}

count = 0

while count < 5:

    name = input()

    age = input()

    dic_student[name] = age

    count += 1

for i, j in dic_student.items():

    print('{}\t{}'.format(i, j))

追问
题目中的左对齐三位要怎么操作呢
追答

姓名左对齐三位是什么意思?这样吗?

dic_student = {}

count = 0

while count < 5:

    name = input()

    age = input()

    dic_student[name] = age

    count += 1

for i, j in dic_student.items():

    print('{}    {}'.format(i, j))

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老九IT
2020-04-22 · 一双眼睛在网络的世界里浪来浪去
老九IT
采纳数:92 获赞数:405

向TA提问 私信TA
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式