本文已参与「新人创作礼」活动,一起开启掘金创作之路
五、题目: 输入三个整数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=" ")