整理一些练手的题目(含代码),可能不是特别优美,有些繁琐,但是等有时间再优化吧~~
1.水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。 请编写程序,在一行内,按从小到大的顺序输出所有水仙花数,以空格作为分割
lst = []for i in range(100, 1000):t = str(i)#字符串可拆解if pow(eval(t[0]),3) +pow(eval(t[1]),3) +pow(eval(t[2]),3) == i:lst.append(i)for i in lst:print(i,end=" ")
2.在一行内,从键盘输入若干个由空格分隔的英文单词(大小写敏感),将这些单词去重后,按照字典序逆序输出,以元组(tuple)的形式输出。
特别要求:
程序中不允许使用集合(set)(这个变态要求,我查了许久~)
用set
def bb(a):return a.lower()temp=set(input().split())a=sorted(temp,key=bb,reverse=True)print(tuple(a))
不用set
def bb(a):return a.lower()temp=tuple(dict.fromkeys(input().split()))a=sorted(temp,key=bb,reverse=True)print(tuple(a))
3.从键盘输入一个字符串(只含有英文和中文),将该字符串中第3个字符(含)之后的字符依次转换为对应的unicode编码数字输出(英文输出10进制数,中文输出16进制数)
a=[str(i)for i in input()]for i in a[2:]:if len(str(ord(i)))==5:j=ib=('%#x'%ord(j))print(b,end=' ')else:c=('%d'%ord(i))print(c,end=' ')
4.输出九九乘法表的左下三角
我写的这个应该是算简洁的了,网上我查了许多,都没我这个简单,如有大佬还有更简单的,可以分享分享
for i in range(1,10):for j in range(1,i+1):print(f'{j:>}*{i:>}={i*j:>2}',end=' ')print('')
5.从键盘输入1000个整数,找出其中最大的数和最小的数并输出
l=[]for i in range(1000):l.append(int(input()))print(max(l),' ',min(l),sep='')
6.从键盘输入两个整数,计算这2个整数(不含)之间所有整数之和。
a,b=input().split(' ')a=int(a)+1b=int(b)sum=0for i in range(a,b):sum+=iprint(sum)
7.使用循环和break以及continue完成下面的程序。
从键盘输入若干整数(整数的数目不确定),计算这些数中不是7的倍数的数的和,并输出。当遇到输入的数是0的时候,停止。
list=[]while True:num=int(input())if num==0:breakif num%7==0:continuelist.append(num)print(sum(list))
8.编写函数fib(n),求斐波那契数列的第n项,作为函数的返回值返回
def fib(n):a,b=0,1for i in range(n):a,b=b,a+breturn a
代码的写法有很多种,没有最好只有更好,欢迎大家的分享
python:考试前 练手习题(斐波那契数 字符串排序 九九乘法表 水仙花数 求和...求数字倍数 (保佑不挂科!)