整理一些练手的题目(含代码),可能不是特别优美,有些繁琐,但是等有时间再优化吧~~
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=i b=('%#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)+1 b=int(b) sum=0 for i in range(a,b): sum+=i print(sum)
7.使用循环和break以及continue完成下面的程序。
从键盘输入若干整数(整数的数目不确定),计算这些数中不是7的倍数的数的和,并输出。当遇到输入的数是0的时候,停止。
list=[] while True: num=int(input()) if num==0: break if num%7==0: continue list.append(num) print(sum(list))
8.编写函数fib(n),求斐波那契数列的第n项,作为函数的返回值返回
def fib(n): a,b=0,1 for i in range(n): a,b=b,a+b return a