zoukankan      html  css  js  c++  java
  • 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-凯莉 每天努力一点点,幸运就多一点点
  • 相关阅读:
    javascript 事件冒泡
    Java 理论与实践: 正确使用 Volatile 变量
    Concurrency,Java 并发
    POJ2379 ACM Rank Table 模拟题
    HDU1711Number Sequence KMP
    POJ1061 青蛙的约会 扩展GCD
    HDU2523 SORT AGAIN HASH
    HDU2087剪花布条 KMP
    HDU3736 Cyclic Nacklace KMP
    HDU1709The Balance 母函数
  • 原文地址:https://www.cnblogs.com/kelly11/p/11844152.html
Copyright © 2011-2022 走看看