美文网首页
July 21-day6-Python循环和列表的练习

July 21-day6-Python循环和列表的练习

作者: 慢节拍_2709 | 来源:发表于2018-07-21 17:13 被阅读0次
    1. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例例如2+22+222+2222+22222(此时共有5个数相 加),几个数相加有键盘控制。
    str1 = '2'
    sum1 = int(str1)
    n =int(input('相加个数:'))
    for _ in range(0,n):
        if _ == 0:
            continue
        str1 += '2'
        sum1 += int(str1)
    print(sum1)
    结果:
    相加个数:5
    24690
    
    1. 打印图形1
    str1 = '@'
    n =int(input())
    for _ in range(0,n):
        if _ == 0:
            print(str1)
            continue
        str1 += '@'
        print(str1)
    结果:
    4
    @
    @@
    @@@
    @@@@
    5
    @
    @@
    @@@
    @@@@
    @@@@@
    
    1. 打印图形2
    str1 = ' '
    str2 = '@'
    n = int(input())
    for x in range(0,n):
        str1 = str1 * n
        n -= 1
        if x == 0:
            str3 = str1 + str2
            print(str3)
            str1 = ' '
            str2 = '@'
            continue
        else:
            str2 += str2*(2*x)
        str3 = str1 + str2
        print(str3)
        str1 = ' '
        str2 = '@'
    结果:
    3
       @
      @@@
     @@@@@
    4
        @
       @@@
      @@@@@
     @@@@@@@
    
    
    1. 打印图形3
    str1 = '@'
    n =int(input())
    for _ in range(n):
        str1 = str1 * n
        n -= 1
        print(str1)
        str1 = '@'
    结果:
    3
    @@@
    @@
    @
    
    1. 输入两个正整数m和n,求其最大公约数和最小公倍数。
    m = 10
    n =  15
    #Python中的三目运算符: 为真时的结果 if 判定条件 else 为假时的结果
    max1 = m if m > n else n
    min1 = m if m < n else n
    
    """a.求最大公约数"""
    # x的取值范围是min1 ~ 1
    for x in range(min1, 0, -1):
        if (m % x == 0) and (n % x == 0):
            print('%d和%d的最大公约数是:%d' % (m, n, x))
            break
    
    """b.求最小公倍数"""
    x = max1
    while True:
    
        if (x % m == 0) and (x % n == 0) :
            print('%d和%d的最小公倍数是:%d' % (m, n, x))
            break
    
        x += 1
    结果:
    10和15的最大公约数是:5
    10和15的最小公倍数是:30
    
    1. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例例如6=1+2+3.编程 找出1000以内的所有完数
    for x in range(1,1001):
        sum1 = 0
        for y in range(1,x):
            if x % y == 0:
                sum1 += y
        if x == sum1:
            print(x)
    结果:
    6
    28
    496
    
    1. 输出9*9口诀
    for x in range(1,10):
        for y in range(1,x+1):
            sum1 = x*y
            str1 = '%dx%d=%d'%(y,x,sum1)
            print(str1,end=" ")
        print()
    结果:
    1x1=1 
    1x2=2 2x2=4 
    1x3=3 2x3=6 3x3=9 
    1x4=4 2x4=8 3x4=12 4x4=16 
    1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 
    1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
    1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
    1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
    1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 
    
    1. 一个5位数,判断它是不不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
    a = []
    n =int(input())
    str1 = str(n)
    for x in str1:
        a.append(x)
    if a[0] == a[4] and a[1] == a[3]:
        print('他是回文数')
    else:
        print('他不是回文数')
    结果:
    12354
    他不是回文数
    45854
    他是回文数
    
    1. 打印图形(菱形)
    a = []
    str1 = ' '
    str2 = '@'
    n = int(input())
    for x in range(0,n):
        str1 = str1 * n
        n -= 1
        if x == 0:
            str3 = str1 + str2
            print(str3)
            a.append(str3)
            str1 = ' '
            str2 = '@'
            continue
        else:
            str2 += str2*(2*x)
        str3 = str1 + str2
        print(str3)
        a.append(str3)
        str1 = ' '
        str2 = '@'
    a.pop(-1)
    for i in a[::-1]:
        print(i)
    结果:
    4
        @
       @@@
      @@@@@
     @@@@@@@
      @@@@@
       @@@
        @
    
    1. 输入一行行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
    number5 = ['0','1','2','3','4','5','6','7','8','9']
    number6 = ['q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m']
    num1 = 0
    num2 = 0
    num3 = 0
    num4 = 0
    str1 = input('请输入字符串:')
    for x in str1:
        if x in number5:
            num1 += 1
        elif x == ' ':
            num2 += 1
        elif x in number6:
            num3 += 1
        else:
            num4 += 1
    print('数字有%d个' % num1)
    print('空格有%d个' % num2)
    print('英文字母有%d个' % num3)
    print('其他字符有%d个' % num4)
    结果:
    请输入字符串:123 ssa +5
    数字有4个
    空格有2个
    英文字母有3个
    其他字符有1个
    
    
    1. 已知一个列表,求列表中心元素。
    list1 = list(input('输入的列表:'))
    num1 =int(len(list1))
    if num1 % 2 == 0:
        y = num1 // 2
        i = int(y-1)
        print(list1[i],list1[y])
    else:
        y = (num1-1)//2
        print(list1[y])
    结果:
    输入的列表:1545643
    5
    
    1. 已知一个列表,求所有元素和。
    sum1 = 0
    list1 = list(input())
    for x in list1:
        sum1 += int(x)
    print(sum1)
    结果:
    5456465
    35
    
    1. 已知一个列表,输出所有奇数下标元素。
    list1 = list(input())
    for i in list1[1::2]:
        print(i)
    结果:
    56132554
    6
    3
    5
    4
    
    1. 已知一个列表,输出所有元素中,值为奇数的。
    list1 = list(input())
    for x in list1:
        y = int(x)
        if y % 2 != 0:
            print(y)
    结果:
    121345485
    1
    1
    3
    5
    5
    
    1. 已知一个列表,将所有元素乘二。
    list4 = list(input())
    list4 = list(int(x)*2 for x in list4)
    print(list4)
    结果:
    21345
    [4, 2, 6, 8, 10]
    
    1. 已知一个列表,将所有元素加到第一个元素中。
    sum1 = 0
    list1 = list(input())
    for x in list1:
        sum1 += int(x)
    list1 .insert(0,sum1)
    print(list1)
    结果:
    542145
    [21, '5', '4', '2', '1', '4', '5']
    
    1. 已知一个列表A,将奇数位置元素存到B列表中,偶数元素存到C列表中。
    B = []
    C = []
    list1 = list(input())
    for i in list1[1::2]:
        B.append(i)
    print(B)
    for i in list1[::2]:
        C.append(i)
    print(C)
    结果:
    164698654713
    ['6', '6', '8', '5', '7', '3']
    ['1', '4', '9', '6', '4', '1']
    
    1. 把A列表的前5个元素复制到B列表中。
    A = ['s','a','b','x',5,7,9]
    B = [2,3]
    for x in A[:5]:
        B.append(x)
    print(B)
    结果:
    [2, 3, 's', 'a', 'b', 'x', 5]
    
    1. 把1--36分别放入列表中,计算列表数组对⻆角元素之和。6 * 6的列表

    2. 有一个长度是10的列表,列表内
      有10个不重复的数字,要求按从大到小排序。

    A = [9,8,7,5,1,3,2,4,6,0]
    A.sort()
    print(A[::-1])
    结果:
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    
    1. 有一个长度是10的列表,要求删除某一个位置的元素
    A = [9,8,7,5,1,3,2,4,6,0]
    A.pop(5)
    print(A)
    结果:
    [9, 8, 7, 5, 1, 2, 4, 6, 0]
    
    1. 有一长度是10的列表,按递增排列,用户输入一个数,插入适当位置。
    num1 = int(input())
    A = [9,8,7,5,1,3,2,4,6,0]
    A.append(num1)
    A.sort()
    print(A[:])
    结果:
    [0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9]
    
    1. 有一个长度是10的列表,数组内有10个人名,要求去掉重复的
    A = ['压抑','起飞','起飞','落地','张阳','飞机','飞机','坦克','阿拉斯加','启明星']
    for x in A:
        if A.count(x) >= 2:
            A.remove(x)
    print(A)
    结果:
    ['压抑', '起飞', '落地', '张阳', '飞机', '坦克', '阿拉斯加', '启明星']
    
    1. 把A列表的第三到第六位之间的元素删除。
    A = [9,8,7,5,1,3,2,4,6,0]
    for i in range(3,7):
        del A[3]
    print(A)
    结果:
    [9, 8, 7, 4, 6, 0]
    
    1. 已知A列表,B列表,定义一个列表C,要求C包含A,B数组中的数据(无重复值)。
    A = [1,2,3]
    B = [4,5,6]
    C = []
    C = A + B
    print(C)
    结果:
    [1, 2, 3, 4, 5, 6]
    

    相关文章

      网友评论

          本文标题:July 21-day6-Python循环和列表的练习

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