python基础练习题5

01:输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数

import string
s = input('input a string:
')
letters =0
space = 0
digit =0
others =0
for c in s:
    if c.isalpha():
        letters+=1
    elif c.isspace():
        space+=1
    elif c.isdigit():
        digit+=1
    else:
        others+=1

print('char=%d,space=%d,digit=%d,other=%d'%(letters,space,digit,others))

02:求s = a+aa+aaa+aaa+aa....a的值,其中a是一个数字,例如:2+22+222+2222+22222,此时共有5个数相加

几个数相加有键盘控制

1.怎么得到这几个数 2+22+222+2222+22222

2+0*10
2+2*10
2+22*10
2+222*10
2+2222*10
看到这里你就会
# n=0
# sum= 0想到这是累加,一个累加求这几个数,一个累加求和
list=[]
num = int(input('请输入一个数:'))
for one in range(5):
      n =n*10+num
      print(n)
      sum = sum+n

print(sum)

#第二种解法
a=input('输入数字>>>')
count=int(input('几个数字相加>>>'))
ret=[]
for i in range(1,count+1):
   ret.append(int(a*i))
   print(ret[-1])
print(sum(ret))

03:一个数如果恰好等于它的因子之和,这个数就成为‘完数’,例如6=1+2+3变成,找出1000以内的所有完数

for i in range(1,1001):
    sumY = 0
    for j in range(1,i):
        ##判断是否因子,是因子 求和
        if i%j ==0:
            sumY += j
    print (sumY,i)
    if sumY == i:
        print ("完数:",i)

04:一球从100米的高度自由落下,每次落地后反跳回的原高度的一半:在落下,求它在第10次落地时,共经过多少米,

第10次反弹多高?

Sn = 100
Hn =Sn/2
for n in range(2,11):
    Sn+=2*Hn
    Hn/=2
    print('road%f'%Sn)
    print('tenth is %fmeter'%Hn)

05:

猴子吃桃子问题:猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,有多吃了一个,第二天早上又将剩下的桃子吃掉一半,呦多吃了一个,以后
每天早上都吃了前一天剩下的一半零一个,到第二天早上想吃再吃时,只剩一个一个桃子,求第一天共摘了多少个
思路:第一天桃子量,等于第二天的桃子量加1乘以2
第二天桃子量,等于第三天的桃子量加1乘以2
.....
思路二:最后一天为1个 假设第九天为P P*1/2-1=1 ,P=4
代码:第10天没吃之前桃子数量初始化P=1,之后循环9次,公式演化= (P+1)*2=p
 
P=1
print('第10天之前就剩1个桃子')
for i in range(1,10):
    P =(P+1)*2
    print('第%s天吃之前还有%s个桃子'%(i,P))

print('第一天共摘了%s'%P)

#第二种
k=0
a=1
while True:
    a =2*a+1
    k+=1
    if k==0:
        print(a)

06:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13..求出这个数列前20项之和

分母+分子=下一个的分子,分母=上一个的分子

a=2
b=1
sum=0
for one in range(20):
    sum+=a/b
    a,b=(a+b),a
print(sum)

#第二种
n=int(input('请输入项数:'))
fenzi=2
fenmu=1
l=[]
s=0
for i in range(1,n+1):
    a=fenzi
    b=fenmu
    s+=(a/b)
    l.append('%s%s'%(a,b))
    fenzi=a+b
    fenmu=a
print('+'.join(str(i)for i in l),end='')
print('=%.2f'%s)




我是kelly-凯莉 每天努力一点点,幸运就多一点点
原文地址:https://www.cnblogs.com/kelly11/p/11844152.html