菜鸟例题 2

108 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

 五、题目: 输入三个整数x,y,z,请把这三个数由小到大输出。

         其实这个题很简单,因为列表可以用sort()命令将输入的数字由小到大排列。所以只需要做一个循环,然后把每次输入的整数放到列表里,最后再用命令排序即可。

l=[0,0,0]
for i in range(3):
    l[i]=int(input('整数:'))
l.sort()
print(l)

六、题目:斐波那契数列。

程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。

在数学上,费波那契数列是以递归的方法来定义。

         第一次我做的时候只考虑了第一种情况,也就是给定某一个位置,找到数列中对应的位置的数字。对照答案之后发现还给了另一种情况,就是求某个位置之前的序列。

        这两种方法都是采用了递归的思路。给定前两个数字0和1,之后的每一项都是前两项之和。   

###输入某个位置的数字。
def fib(n):
    if n==1:
        return 0
    elif n==2:
        return 1
    else:
        return fib(n-1)+fib(n-2)
print(fib)


###输入某个位置之前的所有数字
def fibs(n):
    if n==1:
        return [0]
    if n==2:
        return [0,1]
    else:
        fibs=[0,1]
        for i in range(3,n+1):
            fibs.append(fibs[-1]+fibs[-2])
        return fibs

 7、题目: 将一个列表的数据复制到另一个列表中。

本题有一个需要注意的点是:复制列表很简单,让原来的列表等于一个新的列表就可以了,但如果只是简单的list2=list1,那这两个名称都指向同一个列表,如果改变list2,list1里对应的位置也会改变。如果想要list1仍然保持之前的变量,就需要用[:]进行复制。

list1=[9,5,8]
list2=list1[:]
print(list2)

8、题目: 输出 9*9 乘法口诀表。 

这个题的思路就是i控制每一行,一共有1到9,j控制每一列,从1到i+1,。输出的时候,为了更加美观,运用到了format语句多个传参。

from typing import List
for i in range(1,10):
    print()
    for j in range(1,i+1):
        print('{}*{}={}'.format(i,j,i*j),end=" ")