美文网首页
《Python的菜鸟世界》1-5题

《Python的菜鸟世界》1-5题

作者: sunny_shen | 来源:发表于2020-08-07 11:32 被阅读0次

    参考链接:http://www.zhangdongshengtech.com/article-detials/36

    1、求三位数组合

    已知有一个list,里面有4个数字,分别是3,6,2,7 ,这四个数字能组成多少个互不相同且无重复数字的三位数?比如362算一个,326算一个,请逐个输出他们。

    #解法1
    lis = [3,6,2,7]
    res = []
    count = 0
    for i in lis:
        for j in lis:
            if j == i:
                continue
            for k in lis:
                if (k == j) or (k == i):
                    continue
                temp = i*100+j*10+k
                res.append(temp)
                count += 1
    print("总共有%d个组合,如下:"%count)
    print(res)
    ## 总结:continue也可用于for循环中 
    
    # 解法2
    lis = [3,6,2,7]
    res = []
    for i in lis:
        for j in lis:
            for k in lis:
                if (i != j) and (i != k) and (j != k):
                    temp = "{bai}{shi}{ge}".format(bai = i,shi = j, ge = k)
                    res.append(temp)
    print("总共有%d个组合"%len(res))
    print(res)
    # 总结:先取出所有情况,再排除不符合要求的情况
    

    2、完全平方数

    打印10000以内的完全平方数

    i = 1
    res = []
    while 1:   
        j = i*i
        if j<= 10000:
            res.append(j)
            i += 1
        else:
            break
    print("总计%d个完全平方数"%len(res))
    print(res)
    

    3、打印乘法口诀表

    for i in range(1,10):
        for j in range(1,i+1):
            print("%d*%d = %d"%(j,i,j*i), end = '  ')
        print(' ')
    

    4、输出水仙花数

    输出所有的水仙花数,所谓水仙花数是指一个三位数,各个位上的数的立方相加在一起等于这个三位数,比如153,1的3次方 + 5的三次方 + 3的三次方 等于153。

    # 解法1
    target = []
    for i in range(1,10):
        for j in range (10):
            for k in range(10):
                a = i**3 + j**3 + k**3
                b = i*100 + j*10 + k
                if a == b:
                    target.append(a)
    print("水仙花数有%d个,如下:"%len(target))
    print(target)
    

    上面代码需要注意的是,任意一个三位数,最高位不能为0。

    # 解法2
    for n in range(100,1000):
        i = n // 100         #获取百位数
        j = (n // 10) % 10     #获取十位数
        k = n % 10          #获取个位数
        if n == i**3 + j ** 3 + k ** 3:
            print(n)
    

    关于上面代码,取一个三位数的各个位上的值时:
    第1点,确定小数点向左移动几位;
    第2点,确定取商还是取余。

    5、输出学生分数的考评等级

    允许用户从终端输入一个分数,程序输出这个分数所属的考评等级,90到100分是A,60到89是B,60分以下是C。

    score = int(input("请输入分数:"))
    grade = 'null'
    if score >= 90:
        grade = 'A'
    elif score >= 60:
        grade = 'B'
    else:
        grade = 'C'
    print("分数%d对应的等级为%s"%(score,grade ))
    

    这一题最简单,考察if基本用法。

    相关文章

      网友评论

          本文标题:《Python的菜鸟世界》1-5题

          本文链接:https://www.haomeiwen.com/subject/skcfdktx.html