Python基础30道练习题(三)

Python小白一枚,欢迎各位大佬指教。

21、求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。

s = input("Input s : ")
x = s.split('+')
sum = 0
for i in x:
    sum += int(i)
print(sum)

运行结果:
在这里插入图片描述
22、一个数如果恰好等于它的因子之和,这个数就称为"完数"。

temp = []
for i in range (1,1001):
    for j in range (1,i):
        if i % j ==0:
            temp.append(j)
    if sum(temp) == i:
        print(str(i)+" : "+str(temp))
    temp.clear()

运行结果:
在这里插入图片描述
23、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

h = 100
sumh = 100
for i in range(9):
    h /= 2
    sumh += 2 * h
print("共经过%.3f米"%sumh)
print("第10次反弹高度为%.4f米"%(h/2))

运行结果:
在这里插入图片描述
24、两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

group = ['a','b','c']
flag = {}
for i in group:
    if i != 'x' and i != 'z':
        flag['c'] = 'y'
    if i != 'x' and i != 'y':
        flag['a'] = 'z'
    if i != 'y' and i != 'z':
        flag['b'] = 'x'

print("A的对手是:"+flag['a'])
print("B的对手是:"+flag['b'])
print("C的对手是:"+flag['c'])

运行结果:
在这里插入图片描述
25、打印出如下图案(菱形):

print("   *")
print("  ***")
print(" *****")
print("*******")
print(" *****")
print("  ***")
print("   *")

运行结果:
在这里插入图片描述
26、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

molecule = 2.0
denominator = 1.0
sum = 0.0
for i in range(1,21):
    sum += molecule / denominator
    temp = denominator
    denominator = molecule
    molecule += temp
print("前20项合为%.3f"%sum)

运行结果:
在这里插入图片描述
27、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

n = input("Input N: ")
print("它是%d位数"%len(n))
print("它们分别是",end=" : ")
for i in range(len(n)):
    print(n[-1],end=" ")
    n = n[:-1]

运行结果:
在这里插入图片描述
28、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

string = input("Input String : ")
s_len = len(string) / 2
flag = True
for i in range(int(s_len)):
    if(string[i] != string[-i-1]):
        flag = False
if(flag):
    print("它是回文串")
else:
    print("它不是回文串")

运行结果:
在这里插入图片描述
在这里插入图片描述
29、求一个3*3矩阵主对角线元素之和。

m = [0,0,0]
sum = 0
print("请输入一个3*3矩阵:")
for i in range(3):
    m[0],m[1],m[2]=map(int, input().split(' '))
    sum += (m[i] + m[2-i])
print("对角线元素之和为:"+ str(sum))

运行结果:
在这里插入图片描述
30、两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵

m = [[0,0,0],[0,0,0],[0,0,0]]
for j in range(1,3):
    print("请输入第%d个矩阵:"%j)
    for i in range(3):
        x,y,z=map(int, input().split(' '))
        m[i][0] += x
        m[i][1] += y
        m[i][2] += z
print("----------")
for i in range(3):
    print("%2d %2d %2d"%(m[i][0],m[i][1],m[i][2]))

运行结果:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值