python练习题
一,冒泡排序
data=[11334,123,1,3,2,123,4324,435,46,57,768,87,89,79,79,9,79879,8979,799] # 冒泡排序,将前一位元素和之后的元素进行比对,继续进行下一次循环 l=len(data) for i in range(l): for j in range(l-1): if data[i] < data[j]: data[i],data[j] = data[j],data[i] print(data)
二,判断水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
for i in range(2,1000): #先获取数的百位,十位和个位数,用他们的3次方和来判断是否等于数的本身 #获取数的百位数int(i / 100) #获取数的十位数int(i / 10 % 10) #获取数的个位数int(i % 10) if (int(i / 100) ** 3) + (int(i / 10 % 10) ** 3) + (int(i % 10) ** 3) == i: print("{}:是水仙数".format(i))
三,回文数判断
回文数:从左往右和从右往左读都是一样的数
1,判断一定范围的回文数:
def huiwen(num): snum = str(num) lenth = len(snum) if lenth < 3 or lenth > 7: print('您输入的数据{}不在判断范围,请重新输入长度为3-7的数据'.format(num)) if lenth == 3: if snum[0] == snum[-1]: print('{}:是回文数'.format(num)) else: print('{}:不是回文数'.format(num)) elif lenth == 4 or lenth == 5: if snum[0] == snum[-1] and snum[1] == snum[-2]: print('{}:是回文数'.format(num)) else: print('{}:不是回文数'.format(num)) elif lenth == 6 or lenth == 7: if snum[0] == snum[-1] and snum[1] == snum[-2] and snum[2] == snum[-3]: print('{}:是回文数'.format(num)) else: print('{}:不是回文数'.format(num)) inputData = input("请输入数据:") huiwen(inputData)
2,直接翻转字符串判断
def huiwen2(num): snum =str(num) if snum == snum[::-1]: print('{}是回文数'.format(snum)) else: print('{}不是回文数'.format(snum)) inputData = input("请输入数据:") huiwen2(inputData)
四,实现斐波那契数列
斐波那契数列的定义:
斐波那契数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
1,迭代实现
#首先定义斐波那契的前两个数据 fib = [1,1] max=int(input("请输入一个整数:")) for i in range(2,max): #fib的前两个数据之后相加等于下一个数据 x = fib[i-1]+fib[i-2] fib.append(x) print(fib)
2,递归实现
def diguiFib(num): if num <= 2: return 1 else: return diguiFib(num - 1) + diguiFib(num - 2) for i in range(1, 21): print(diguiFib(i), end=' ')
五:输出九九乘法口诀表
#输出99乘法口诀表 for i in range(1,10): for j in range(1,i+1): print("%d*%d==%d"%(j,i,i*j),end=' ') print()