首页 > 编程语言 > 详细

python100例

时间:2019-06-02 19:15:26      阅读:122      评论:0      收藏:0      [点我收藏+]
17输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
s = input("请输入:")
# print(s[1])
# print(len(s))
# alpha,digit,space,other = 0
l=alpha=digit=space=other = 0
while l < len(s):
    if s[l].isalpha():
        alpha += 1
        # l += 1
    elif s[l].isdigit():
        digit += 1
        # l += 1
    elif s[l].isspace():
        space += 1
        # l += 1
    else:
        other += 1
        # l += 1
    l += 1
print("字母%s 数字%s 空格%s 其他%s"%(alpha,digit,space,other))

18求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
from functools import reduce
a = int(input("输入a:"))
n = int(input("输入n:"))
li = []
Tn = 0
Sn = 0
for i in range(0,n):
    Tn = Tn + a
    a *= 10
    li.append(Tn)
Sn = reduce(lambda x,y:x+y,li)
# Sn = lambda x,y:x+y,li
print("Sn=",Sn)

19一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
sum = 0
for i in range(0,1001):
    sum = 0  #每换一个i  sum必须从0开始
    li=[]
    for j in range(1,i):
        if i%j == 0:
            sum = sum + j
            li.append(j)
            # if sum == i:
            #     print(i, li)      #输出结果有24 [1, 2, 3, 4, 6, 8]  很明显少了12  因为j=8时已经满足sum = i,j不再增加
    if sum == i:   #所以得等到所有j遍历完再判断sum
        print(i,li)   #输出结果不再有24  有0[]  哈哈哈哈xswl  改i范围 从1开始 不能改j为从0开始 除数不能为0
        # break

20一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
from functools import reduce
li = [100]
def ball_hei(n):
    hei = 100 / (2**n)
    for i in range(1,n):
        # meter = 100 / (2**i)
        # li.append(meter*2)
        li.append(100/i)
    # print(hei,li)
    sum = reduce(lambda x,y:x+y,li)
    print("第%s次反弹高度为%s米,落地时经过%s米"%(n,hei,sum))
ball_hei(10)

22两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
D = [x,y,z]
for i in D:
    if i != x and i != z:
        # C.append(i)
        print("c --",i)
        D.remove(i)
        # print(D)
        for j in D:
            if j != x:
                print("a --", j)
                D.remove(j)
                print("b --",D[0])
for a in [x,y,z]:
    for b in [x, y, z]:
        for c in [x, y, z]:
            if(a!=b)and(b!=c)and(c!=a) and (a!=x) and (c!=x) and (c!=z):
                print( a--%s,b--%s,c--%s %(a,b,c))

23 打印出如下图案(菱形):
s = *
n = int(input("输入层数(奇数):"))
for i in range(1,n+1,2):
    t = (n-i)//2
    print( *t + s*i +  *t)
for i in reversed(range(1,n-1,2)):
    t = (n-i)//2
    print( *t + s*i +  *t)

s = *
for i in range(1, 8, 2):
    print((s*i).center(7))
for i in reversed(range(1, 6, 2)):
    print((s*i).center(7))

24 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
from functools import reduce
b = 2
a = 1
s = 0
li = []
for i in range(1,21):
    # s += b / a
    li.append(b / a)
    b,a = a+b,b
print(li)
print(reduce(lambda x,y:x+y,li))
# print(s)

25 利用递归方法求5!
sum = 0
def Jiech(n):
    if n == 1:
        sum = 1
    else:
        sum = n * Jiech(n-1)
    return sum

print(Jiech(5))

30 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
s = input("请输入一个5位数:")
flag = 1
for i in range(len(s)):
    if s[i] != s[-i-1]:   #要验证不满足的  如果验证满足的 有一位对称则会判定为回文  比如 12341
        flag = 0
        break
if flag:
    print("是回文")
else:
    print("不是回文")

37

 

python100例

原文:https://www.cnblogs.com/Nicloe2333/p/10963856.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!