美文网首页
12-31day6作业

12-31day6作业

作者: 生命的怒放 | 来源:发表于2018-12-31 20:45 被阅读0次

    列表基础

    1求列表中心元素。

    list1 = [12,34,69,34,22]
    if len(list1) % 2 == 0:
        print('中心元素是:',[])
    else:
        zx = int((len(list1)-1) / 2)   #下标从0开始,len是从1开始。
        print('中心元素是:',list1[zx])
    

    2求所有元素和。

    list1 = [12,34,69,34,22]
    numhe = 0
    for he in list1:
        numhe  += he
    print('这个列表的和是:%d' % numhe)
    
    list1 = [12,34,69,34,22]   #简单方法二
    numhe = sum(list1)
    print('这个列表的和是:%d' % numhe)
    

    3输出所有奇数下标元素。

    list1 = [12,34,69,34,22]
    list_jieg = []
    num = -1
    for x in list1:
        num += 1
        if num % 2 != 0:
            list_jieg .append(x)
    print(list_jieg)
    

    4.输出所有元素中,值为奇数的。

    list_jishu = []
    list1 = [12,34,69,34,22]
    for he in list1:
        if he % 2 != 0:
            list_jishu.append(he)
    print(list_jishu)
    

    5将所有元素乘二。

    list1 = [12,34,69,34,22]
    list_jigu =[]
    for x in list1:
        list_jigu.append(x * 2)
    print(list_jigu)
    

    6有一个长度是10的列表,数组内有10个人名,要求去掉重复的例如:names = ['张三', '李四', '大黄', '张三'] -> names = ['张三', '李四', '大黄']

    names = ['张三', '李四', '大黄', '张三','李四', '大黄','熊大','熊二','光头强','哪吒']
    listh = []
    for x in names:
        if x not in listh:
            listh.append(x)
    print(listh)
    

    7.已经一个数字列表(数字大小在0~6535之间), 将列表转换成数字对应的字符列表例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']

    list1 = [97, 98, 99]
    list2 = []
    for x in list1:
        list2.append(chr(x))
    print(list2)
    

    8.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)

    listdf = [4,6,8,9,7,8,6,8]
    listdf.remove(min(listdf))
    listdf.remove(max(listdf))
    he = 0
    for x in listdf:
        he += x
    he =he / len(listdf)
    print('平均分:%.2f' % he)
    

    9.有两个列表A和B,使用列表C来获取两个列表中公共的元素.-例如: A = [1, 'a', 4, 90] B = ['a', 8, 'j', 1] --> C = [1, 'a']

    A = [1, 'a', 4, 90]
    B = ['a', 8, 'j', 1]
    C = []
    for x in A:
        if x in B:
            C.append(x)
    print(C)
    

    第二部分

    1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)婴幼儿0-3 儿童3-6、少年6-18、青年18-35、中年36-60、老年61-

    num = 1
    while num == 1:
        num2 = input('请输入年龄:')
        if num2 == 'end':
            break
        elif 0 < int(num2) <= 3:
            print('婴幼儿。')
        elif 3 < int(num2) <= 6:
            print('儿童。')
        elif 6 < int(num2) <= 18:
            print('少年。')
        elif 18 < int(num2) <= 35:
            print('青年。')
        elif 36 < int(num2) <= 60:
            print('中年。')
        elif 61 < int(num2):
            print('老年。')
    

    2计算5的阶乘 5!的结果是

    ji = 1
    for x in range(1,6):
        ji *= x
    print('5!阶乘积:%d' % ji)
    

    3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。注3!=3*2*1

    he1 = 0
    num = 1
    for x in range(1, 21):
        for jic in range(1, x + 1):
            num *= jic
        he1 += num
        num = 1
    print(he1)
    # 1 = 1   2 = 1*1 + 1*2 +1 * 2 * 3    3 = 1*1 + 1*2 +1 * 2 * 3
    # x = 1 jic = 1   he1 = 1
    #x = 2  jic = 1  num = 1 ; jic = 2  num = 1*2  he1 = 3
    

    4.计算 1+1/2!+1/3!+1/4!+...1/20!=?

    he1 = 0
    num = 1
    sang = 0
    for x in range(1,21):
        for jic in range(1,x + 1):
            num *= jic
        sang = 1 / num
        num = 1
        he1 += sang
    print(he1)
    

    5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。

    he = 0
    num = int(input('请输入一个大于0的数:'))
    while num > 0:
        he += num
        num = int(input('请输入一个大于0的数:'))
    print(he)
    

    6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。

    a = 5 #num = int(input('请输入相加的位数:,))
    s = input('请输入相加的数字:')
    he = 0
    for x in range(1,a + 1):
        x = s * x
        for m in range(1):
            he += int(x)        
    print(he)
    

    方法二:

    a = 5 #num = int(input('请输入相加的位数:,))
    s = input('请输入相加的数字:')
    he = []
    for x in range(1,a + 1):
        x = s * x
        he.append(int(x))
    print(sum(he))   
    

    7.输入三个整数x,y,z,请把这三个数由小到大输出。

    list1 = []
    listjg = []
    for x in range(3):
        num = int(input('请输入三个整数:'))
        list1.append(num)
    #(list1)产生了新的列表,要重新赋值。
    listjg = sorted(list1)
    print(listjg)
    

    8.控制台输出三角形

    n = 9
    xin = '*'
    houj = '*'
    for x in range(1,10,2): #1,3,5,7,9
        if x < 2:
            xin *= x
            print(xin.center(9,' ') + '\n')
        elif 2 < x < 9:
            xin = '*' + ' ' * (x - 2) + '*'
            xin.center(9, ' ')
            print(xin.center(9, ' ') + '\n')
        elif  x == 9:
            houj *= x
            print(houj)
    

    a.根据n的值的不同,输出相应的形状

    n = 5时 n = 4 ( ◤ 倒直角三角形)
    ***** ****
    **** ***
    *** **
    ** *
    *

    n = int(input("请输入一个整数:"))
    xin = '*'
    while n > 0:
        xin *= n
        xin.ljust(n,' ')
        n -= 1
        print(xin,'\n')
        xin = '*'
    

    b.根据n的值的不同,输出相应的形状(n为奇数)

    n = 5               n = 7(等腰三角形)
      *                    *
     ***                  ***
    *****                *****
                        *******
    
    n = int(input("请输入一个奇数:"))
    xin = '*'
    for x in range(1,n + 1,2):
        xin *= x
        #xin.center(n,' ')
        print(xin.center(n,' '),'\n')
        xin = '*'
    

    9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。i = 9 行 j = 9 列

    for i in range(1, 10):     #i = 1,2,3,4,---9  i每大一位运行一次,
        j = 1                  #range后面不要写会改变的值,用while
        he = []
        while j <= i:
            ji = j * i             # ji = 2   j = 1--2  i = 2
            he.append('%d * %d = %d ' % (j, i, ji))
            j += 1
        print(he)
        #for j in range(1, i + 1):
        #   ji = j * i             
        #    he.append('%d * %d = %d ' % (j, i, ji))
        #   j += 1
      #  print(he)   这个也可以
    

    * 1: i = 1 j = 1 1*1 = 1 he[1*1 = 1] -- j = 2 he = [] ji = 1 *【【【【【2: i = 2 j = 1 ji = 1*2 j = 2 --- ji = 2 * 2 j = 3 he = [] ji = 1 *【【【【3: i = 3 j = 1

    10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,

    大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?

    大马数量x 中马y 小马w 3x + 2y + w/2 = 100 and x + y + w = 100

    for w in range(101):
        for y in range(51):
            for x in range(34):
                if 3*x + 2*y + w/2 == 100 and x + y + w == 100:
                    print('大马%d,中马%d,小马%d ' % (x, y, w))
    

    11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

    x是公鸡 y是母鸡 w雏鸡 5*x + 3*y + w/3 = x + y + w

    for w in range(101):
        for y in range(34):
            for x in range(21):
                if 5*x + 3*y + w/3 == 100 and  x + y + w == 100:
                    print('公鸡%d,母鸡%d,雏鸡%d ' % (x, y, w))
    

    12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉, 可如有哪些购买结合?

    洗发水x瓶 香皂y个 牙刷w个 x*15 + y*2 + w*5 = 100 且3种都要大于0

    for w in range(1, 21):
        for y in range(1, 51):
            for x in range(1, 7):
                if x*15 + y*2 + w*5 == 100:
                    print('洗发水%d,香皂%d,牙刷%d ' % (x, y, w))
    

    相关文章

      网友评论

          本文标题:12-31day6作业

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