美文网首页
day5作业

day5作业

作者: HavenYoung | 来源:发表于2018-07-20 22:13 被阅读0次
    1. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相 加),几个数相加有键盘控制。
      方法一:
    a = input('>>>>')
    a_int = int(a)
    # 初始化容器
    list1 = []
    result = ''
    sum = 0
    # 生成中间值,用列表保存
    for index1 in range(a_int):
        temp = ''
        for index2 in range(index1+1):
            temp += a
    
        list1.append(temp)
    
    print(list1)
    
    # 拼接中间变值
    for index3 in range(len(list1)):
        if index3 == len(list1)-1:
            result += list1[index3]
        else:
            result += list1[index3] + '+'
    
    # 计算结果
    for num in list1:
        sum += int(num)
    
    print('s =', result, '=', sum)
    

    结果:

    >>>>5
    ['5', '55', '555', '5555', '55555']
    s = 5+55+555+5555+55555 = 61725
    
    

    方法二:

    a = input('>>>>')
    a_int = int(a)
    result = ''
    sum = 0
    # 生成中间值并且拼接成字符串
    for index1 in range(a_int):
        for index2 in range(index1+1):
            result += a
        if index1==a_int-1:
            pass
        elif a_int>=2:
            result += '+'
    
    print(result)
    
    # 将字符串切片,并且用列表保存
    list1 = result.split('+')
    print(list1)
    
    # 计算结果
    for num in list1:
        sum += int(num)
    
    print('s =', result, '=', sum)
    

    结果:

    >>>>5
    5+55+555+5555+55555
    ['5', '55', '555', '5555', '55555']
    s = 5+55+555+5555+55555 = 61725
    
    1. 打印图形1
    n = input('>>>>')
    n_int = int(n)
    for index1 in range(n_int):
        for index2 in range(index1+1):
            print('@', end='')
        print('')
    

    结果:

    >>>>5
    @
    @@
    @@@
    @@@@
    @@@@@
    
    1. 打印图形2
    n = input('>>>>')
    n_int = int(n)
    for index1 in range(n_int,0,-1):
        for index2 in range(index1-1):
            print(' ', end='')
        for index3 in range((n_int-index1)*2+1):
            print('@', end='')
    
        print(' ')
    

    结果:

    >>>>5
        @ 
       @@@ 
      @@@@@ 
     @@@@@@@ 
    @@@@@@@@@
    
    1. 打印图形3
    n = input('>>>>')
    n_int = int(n)
    for index1 in range(n_int):
        for index3 in range(n_int-index1):
            print('@', end='')
    
        print(' ')
    

    结果:

    >>>>5
    @@@@@ 
    @@@@ 
    @@@ 
    @@ 
    @ 
    
    1. 输入两个正整数m和n,求其最大公约数和最小公倍数。
    # 求其最大公约数和最小公倍数:辗转相除法
    # 两个数的乘积等于这两个数的最大公约数与最小公倍数的积
    
    m = int(input('请输入m:'))
    n = int(input('请输入n:'))
    if m < n:
        m = m + n
        n = m - n
        m = m - n
    x = m
    y = n
    while True:
        temp = y
        y = x % y
        if not y:
            print('%d和%d最大公约数是'%(m, n) + str(temp))
            break
    
        x = temp
    
    print('%d和%d最小公倍数是%.f'%(m, n, m*n/temp))
    

    结果:

    请输入m:15
    请输入n:25
    25和15最大公约数是5
    25和15最小公倍数是75
    
    1. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有 完数
    list1 = []
    for index1 in range(1001):
        sum = 0
        for index2 in range(1, 1000):
            if not index1%index2:
                sum += index2
    
        if index1 == sum/2:
            list1.append(index1)
    
    print(list1)
    

    结果:

    [6, 28, 496]
    
    1. 输出9*9⼝口诀
    for line in range(1,10):
        for column in range(1,line+1):
            print('%dX%d=%d'%(column, line, column*line), 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是回文数,个位与万位相同,十位与千位相同。
    numbers = input('请输入一个五位数:')
    if numbers[::-1]==numbers:
        print('这是一个回文')
    else:
        print('这不是一个回文')
    

    结果:

    请输入一个五位数:65456
    这是一个回文
    

    9.打印图形(菱形)

    n = input('>>>>')
    n_int = int(n)
    for index1 in range(1,n_int*2):
        if index1<=n_int:
            for index2 in range(n_int-index1):
                print(' ', end='')
            for index3 in range(index1*2-1):
                print('@', end='')
        else:
            for index4 in range(index1 - n_int):
                print(' ', end='')
            for index5 in range((2*n_int-index1)*2-1):
                print('@', end='')
    
        print(' ')
    
    

    结果:

    >>>>5
        @ 
       @@@ 
      @@@@@ 
     @@@@@@@ 
    @@@@@@@@@ 
     @@@@@@@ 
      @@@@@ 
       @@@ 
        @ 
    

    10.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    str1 = input('请输入一串字符串:')
    letter = 0
    number = 0
    mark = 0
    space = 0
    for char in str1:
        if 'A'<=char<='Z' or 'a'<=char<='z':
            letter += 1
        elif char==' ':
            space += 1
        elif '0'<=char<='9':
            number += 1
        else:
            mark += 1
    
    print('字母有%d个,空格有%d个,数字有%d个,符号有%d个'%(letter, space, number, mark))
    

    结果:

    请输入一串字符串:123 abc DFS #$#fsd123
    字母有9个,空格有3个,数字有6个,符号有3个
    

    相关文章

      网友评论

          本文标题:day5作业

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