美文网首页
for循环作业

for循环作业

作者: 蘑菇plus | 来源:发表于2018-07-22 17:03 被阅读0次
    1. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀一个数字。例例如2+22+222+2222+22222(此时共有5个数相
      加),⼏几个数相加有键盘控制。
    e=0
    f=0
    a=int(input('请输入a的值:'))
    number=int(input('请输入相加的次数:'))
    while number>=0:
        e=10**e+a
        f=f+e
        number-=1
    print(f)
    
    结果:请输入a的值:2
    请输入相加的次数:3
    2468
    
    1. 打印图形1
      n = 4
      @
      @@
      @@@
      @@@@
    line=0
    while line<5:
        tmp=line
        while tmp>0:
            print('*',end='')
            tmp-=1
        print()
        line+=1
    结果:
    *
    **
    ***
    ****
    

    n = 5
    @
    @@
    @@@
    @@@@
    @@@@@

    line=0
    while line<6:
        tmp=line
        while tmp>0:
            print('*',end='')
            tmp-=1
        print()
        line+=1
    结果:
    *
    **
    ***
    ****
    *****
    
    1. 打印图形2
      n = 3
      @
      @@@
      @@@@@
    f=int(input('请输入一个数字:'))
    for i in range(f):
        s='*'*(1+2*i)
        print(s.center(1+2*f))
    结果:
       请输入一个数字:3
       *   
      ***  
     ***** 
    
    1. 打印图形3
      n = 3
      @@@
      @@
      @
    line=3
    while line>0:
        tmp=line
        while tmp>0:
            print('*',end='')
            tmp-=1
        print()
        line-=1
    结果:
    ***
    **
    *
    
    1. 输⼊入两个正整数m和n,求其最⼤大公约数和最⼩小公倍数。
    m = input('输入 m:')
    n = input('输入 n:')
    count = 1
    for i in range(0,int(m)):
        num1 = int(m) - i
        if (int(m) % num1 == 0) and (int(n) % num1 ==0):
            print(' of %s and %s 的最大公约数是 %d'%(m,n,num1))
            break
    while True:
        num2 = count*int(m)
        if num2 % int(n) == 0:
            print(' %s and %s 的最小公倍数是 %d'%(m,n,num2))
            break
        count += 1
    结果:
    请输入一个数:7
    请输入另一个数:8
     of 7 and 8 的最大公约数是 1
     7 and 8 的最小公倍数是 56
    
    1. ⼀一个数如果恰好等于它的因⼦子之和,这个数就称为 "完数 "。例例如6=1+2+3.编程 找出1000以内的所有完数
    list=[]
    for m in range(1,1001):
        sum = 0
        for i in range(1,m):
            if m%i==0:
                sum+=i
        if sum==m:
            list.append(m)
    print('完数是:',list)
    结果:[6, 28, 496]
    
    1. 输出9*9⼝口诀
    for m in range(1,10):
        for n in range(1,10):
            if n>m:
                continue
            print('%d*%d=%d' % (m,n,m*n),end=' ')
        print()
    结果:
    1*1=1 
    2*1=2 2*2=4 
    3*1=3 3*2=6 3*3=9 
    4*1=4 4*2=8 4*3=12 4*4=16 
    5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
    6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
    7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
    8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
    9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 
    
    1. ⼀一个5位数,判断它是不不是回⽂文数。即12321是回⽂文数,个位与万位相同,十位与千位相同。
    w=input('请输入一个5位数:')
    if w[::-1]==w:
        print('这是一个回文数')
    else:
        print('这不是一个回文数')
    结果:请输入一个5位数:12321
    这是一个回文数
    
    1. 打印图形(菱形)
    
    for i in range(4):
        s='*'*(2*i+1)
        print(s.center(8))
        if s==7:
            continue
    m=3
    while m>0:
        s='*'*(2*m-1)
        m-=1
        print(s.center(8))
    结果:
       *    
      ***   
     *****  
    ******* 
     *****  
      ***   
       *    
    
    1. 输⼊入⼀行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
    number1=0
    number2=0
    number3=0
    number4=0
    str1=input('请输入一串字符:')
    list1=list(str1)
    for i in list1:
        if i==' ':
            number1+=1
        if 'A'<=i<='Z' and 'a'<=i<='z':
            number2+=1
        if '0'<=i<='9':
            number3+=1
        else:
            number4+=1
    print('空格的数量为:%d,字母的数量为:%d,数字的数量为:%d,其他字符数量为:%d'%(number1,number2,number3,number4))
    结果:空格的数量为:2,字母的数量为:0,数字的数量为:3,其他字符数量为:7
    

    列表作业

    1.已知⼀个列表,求列表中⼼元素。

    list1=[8,7,5,3,8]
    m=len(list1)
    if m==0:
        print('列表里无元素!')
    if m%2==0:
        print('列表里有二个中心元素,中心元素为:%d,%d'%(list1[int((m/2)-1)],list1[int(m/2)]))
    else:
        print('列表有一个中心元素,中心元素为:%d'%(list1[int(m/2)]))
    结果:5
    

    2.已知⼀个列表,求所有元素和。

    list1=[8,7,5,3,5]
    sum=0
    for i in list1:
        if not (isinstance(i, int) or isinstance(i, float)):
            break
        sum+=i
    print('列表元素的和为:',sum)
    
    结果:28
    

    3.已知一个列表,输出所有奇数下标元素。

    list1=[8,7,5,3,8]
    for i in range(5):
        if not i%2==0:
           print(list1[i],end=" ")
    结果:7 3
    

    4.已知⼀个列表,输出所有元素中,值为奇数的。

    list1=[8,7,5,3,8]
    for i in list1:
        if not i%2==0:
           print(i,end=" ")
    结果:7 5 3 
    

    5.已知⼀个列表,将所有元素乘二。

    list1=[8,7,5,3,8]
    list1=[i*2 for i in list1]
    print(list1)
    结果:[16, 14, 10, 6, 16]
    

    6.已知⼀个列表,将所有元素加到第一个元素中。

    list1=[8,7,5,3,8]
    for i in list1:
        if i==list1[0]:
            continue
        m=list1[0]+i
        list1[0]=m
    print(list1)
    结果:[31, 7, 5, 3, 8]
    

    7.已知⼀个列表A,将奇数位置元素存到B列表中,偶数元素存到C列表中。

    list1=[8,7,5,3,8]
    list2=[]
    list3=[]
    for i in range(len(list1)):
        if i%2==0:
            list3.append(list1[i])
        else:
            list2.append(list1[i])#在if--else语句中间不能加其他语句
    print(list3)
    print(list2)
    结果:
    [8, 5, 8]
    [7, 3] 
    

    8.把A列表的前5个元素复制到B列表中。

    list1=[8,7,5,3,8,9,7]
    list2=[]
    list2=list2+list1[0:5]
    print(list2)
    结果:[8, 7, 5, 3, 8]
    

    9.把1----36分别放入列表中,计算列表数组对角元素之和。6 * 6的列表

    list9 = [1,  2,  3,  4,  5,  6,
             7,  8,  9, 10, 11, 12,
             13, 14, 15, 16, 17, 18,
             19, 20, 21, 22, 23, 24,
             25, 26, 27, 28, 29, 30,
             31, 32, 33, 34, 35, 36]
    sum=0
    for m in range(len(list9)):
        if m in range(0,len(list9),7):
            sum+=list9[m]
        elif m in range(5,len(list9),5):
            sum+=list9[m]
    print(sum)
    结果:222
    

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

    list1=[87,7,5,3,8,9,7,45,65,20]
    list1.sort(reverse=True)
    print(list1)
    结果:
    [87, 65, 45, 20, 9, 8, 7, 7, 5, 3]
    

    11.有⼀个长度是10的列表,要求删除某⼀个位置的元素

    list1=[87,7,5,3,8,9,7,45,65,20]
    for n in range(10):
        list1.pop()
        print(list1)
    结果:[87, 7, 5, 3, 8, 9, 7, 45, 65]
    [87, 7, 5, 3, 8, 9, 7, 45]
    [87, 7, 5, 3, 8, 9, 7]
    [87, 7, 5, 3, 8, 9]
    [87, 7, 5, 3, 8]
    [87, 7, 5, 3]
    [87, 7, 5]
    [87, 7]
    [87]
    []
    

    12.有⼀个⻓度是10的列表,按递增排列,⽤户输⼊⼀个数,插⼊适当位置。

    m=int(input('请输入一个数:'))
    list1=[1,3,5,7,8,9,32,45,65,720]
    for n in range(10):
        if m<=list1[n]:
            list1.insert(n+1,m)
            break
    print(list1)
    结果:[1, 3, 5, 7, 8, 9, 9, 32, 45, 65, 720]
    

    13.有一个长度是10的列表,数
    组内有10个人名,要求去掉重复的

    
    list1=['dandan','aoli','aoli','dandan','gaoya','dandan','gaoya','dandan','gaoya','gaoya']
    list2=[]
    for n in list1[:]:
        if n not in list2:
            list2.append(n)
    list1=list2
    del list2
    print(list1)
    结果:['dandan', 'aoli', 'gaoya']
    

    14.把A列表的第三到第六位之间的元素删除。

    list1=['dandan','aoli','aoli','dandan','gaoya','dandan','gaoya','dandan','gaoya','gaoya']
    del list1[2:6]
    print(list1)
    结果:
    ['dandan', 'aoli', 'gaoya', 'dandan', 'gaoya', 'gaoya']
    

    15.已知A列列表,B列列表,定义⼀一个列列表C,要求C包含A,B数组中的数据(⽆无重复值)。

    list1=['dandan','aoli','aoli','dandan','gaoya','dandan','gaoya']
    list2=['ok','no','fun','fun']
    list3=[]
    list4=list1+list2
    for i in list4:
        if i not in list3:
            list3.append(i)
    del list4
    print(list3)
    结果:['dandan', 'aoli', 'gaoya', 'ok', 'no', 'fun']
    

    相关文章

      网友评论

          本文标题:for循环作业

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