码迷,mamicode.com
首页 > 其他好文 > 详细

循环与判断的练习与作业

时间:2018-03-25 20:47:25      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:Python   循环   判断   

1、输入2个数字,输出最大数。
    a = int(input(‘>>>’))
    b = int(input(‘>>>’))
    if a >= b:
        print(a)
    else:
        print(b)

2、输入两个数,比较大小后,从小到大升序打印。
    a = int(input('first: '))
    b = int(input('second: '))
    
    if a > b:
        print(b,a)    或者 print(b,a) if a > b else print(a,b)  #三目运算符
    else:
        print(a,b)

3、请输入若干个整数,打印出最大值。
(1)    
    numbei = int(input("number"))
    n = int(input("how"))
    for i in range(n):
        newnumber = int(input("number"))
        if number >= number:
            number = newnomber
    else:  
        print(number)
(2)
    m = int(input("Input first number >>>"))
    while True:
        a = input("Input a number >>>")
        if a:
            a = int(a)
            if a > m:
                m = a
            print('Max is',m)
        else:
            break

4、给定一个不超过五位的正整数,判断其有几位。
(1)
    val = int(input(‘>>>’))
    if val >= 10000:
        b = 5
    elif val >= 1000:
        b = 4
    elif val >= 100:
        b = 3
    elif val>= 10:
        b = 2
    else:
        b = 1
    print(b)

(2)
    val = int(input(‘>>>’))
    if val >= 1000:
        if val >= 10000:
            b = 5
        else:
            b = 4
    else:
        if val >= 100:
            b = 3
        elif val >= 10:
            b = 2
        else:
            b = 1
    print(b)
(3)
    newnumber = input("nember")
    length = len(newnumber) #取字符串
    if length > 5:
        print(5)
    elif length > 4:
        print(4)
    elif length > 3:
        print(3)
    elif length > 2:
        print(2)
    else:
        print(1)
        
5、给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字。
    (1)
        a = int(input('>>>'))
        if a >= 1000:
            if a >= 10000:
                b = 5
            else:
                b = 4
        else:
            if a >= 100:
                b = 3
            elif a >= 10:
                b = 2
            else:
                b = 1
        print(b)        
        for i in range(b):
            print(a % 10)
            a = a // 10
    (2)
        val = input('>>>')
        val = int(val)
        print(val)
        if val >= 1000: # 折半
            if val >= 10000:
                num = 5
            else:
                num = 4
        else:
            if val >= 100:
                num = 3
            elif val >= 10:
                num = 2
            else:
                num = 1
        print(num)
        c = val
        for i in range(num):
            n = c // 10
            print(c - n*10)
            c = n

6、给定一个不超过5位的正整数,判断该数的位数,依次从万位打印到个位的数字。
(1)      
    val=int(input('>>>'))
    if val>=1000:
        if val >= 10000:
            num = 5
        else:
            num = 4
    else:
        if val >= 100:
            num = 3
        elif val >= 10:
            num = 2
        else:
            num = 1
    print(num)
    pre=0        
    for i in range(num,0,-1):
        cur = val // (10 ** (i-1))
        print(cur - pre*10)
        pre = cur
(2)
    c = int(print('>>>'))
    w = 10000
    for i in range(5):
        print(c//w)
        c %= w
        w //= 10
(3)
    c = int(input('>>>'))
    length = len(c)  #取字符长度
    w = 10 ** (length - 1)
    flag = False
    while w:
        t = c // w
        if flag:
            print(t,end = ' ')
        else:
            if t:
                print(t,end = ' ')
                flag = True
            else:
                length-=1
        c %= w
        w //= 10
    print()
    print("The length of number is",length)

7、打印一个边长为n的正方形
(1)
    n = int(input('>>>'))
    print(n * ’*’)
    for i in range(n-2):
        print(‘*’ + ’ ’*(n-2) + ’*’)
    print(n * ’*’)
(2)
    n = int(input('>>>'))
    e = -n // 2
    for i in range(e,n+e):
        if i == e or i == n+e-1:
            print('*'*n)
        else:
            print('*' + ''(n-2) + '*')

8、求100内所有奇数的和(2500)
    sum = 0
    for i in range(1,100,2):
        sum += i
    print(sum)

9、判断学生成绩,成绩等级A-E,其中,90分以上为‘A’,80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'
    (1)
        a = int(input('>>>'))
        if a >= 90:
            b = 'A'
        elif a >= 80:
            b = 'B'
        elif a >= 70:
            b = 'C'
        elif a >= 60:
            b = 'D'     
        else:
            b = 'E'
        print(b)

10、求1到5阶乘之和
    sum = 0
    a = 1
    for i in range(1,6):
        a = i * a
        sum += a
    print(sum)

11、给一个数,判断它是否是素数(质数),质数:一个大于1的自然数只能被1和它本身整除
    num = int(input('>>>'))
    for i in range(2,int((num**0.5)+1)):
        if num % i == 0:
            print('这不是质数')
            break
    else:
        print('这是个质数')
作业

1、打印九九乘法表
(1)左下角,未对齐:  
    for i in range(1,10):
        for j in range(1,i+1):
            print(j,'x',i,'=',i*j,end='  ')
        print()
(2)左下角,已对其:
    for i in range(1,10):
        for j in range(1,i+1):
            print('{}*{}={:<{}}'.format(j,i,i*j,2 if j<2 else 3),end='')
        print()
(2)右上角
    for i in range(1,10):
        line=''
        for j in range(i,10):
            line+='{}*{}={:<{}}'.format(i,j,i*j,2 if j<4 else 3)
        print('{:>65}'.format(line))

2、打印实心菱形
(1)    
    n = int(input('奇数'))
    e = n//2
    for i in range(-e,n-e):
        a = -i if i < 0 else i
        print(' '*a+'*'*(n-a*2))
(2)
    n = int(input('输入一个数>>>'))
    if not n % 2:
        n += 1
    e = n//2
    for i in range(-e,n-e):
        print(' '*abs(i) + '*'*(n-2*abs(i))) #abs:绝对值

3、打印对顶三角形
    n = int(input('输入一个奇数>>>'))
    e = n//2
    for i in range(-e,n-e):
        print(' '*(e-abs(i)) + '*'*(2*abs(i)+1))

4、打印闪电
    n = int(input('>>>'))
    e = n//2
    for i in range(-e,n-e):
        if i < 0:
            print(' '*(e) + '*'*(n-e+i ))
        elif i == 0:
            print(n*'*')
        else:
            print(e*' '+'*'*(n-e-i))
    
5、打印100以内的斐波那契数列
        a = 1
        b = 1
        print(a)
        print(b)
        for i in range(2,101):
            if i == a + b:
                print(i)
                a = b
                b = i

6、求斐波那契数列第101项
    (1)
        a = 1
        b = 1
        count = 2
        while True:
            sum = a + b
            a = b
            b = sum
            count += 1
            if count == 101:
                break
        print(sum)
    (2)
        a = 1
        b = 1
        for i in range(2,101):
            sum = a + b
            a = b
            b = sum
        print(sum)

7、求10万内的所有素数
(1)
    import datetime
    start=datetime.datetime.now()
    print(2,"\t",end="")
    count = 1
    for i in range(3,100001,2):
        for j in range(2,int((i**0.5)+1),2):
            if i % j == 0:
                break
        else:
            print(i,"\t",end="")
            count += 1
    print(count)
    delta = (datetime.datetime.now() - start).total_seconds() #时间计算
    print(delta)

8、猴子吃桃
    n = 1
    for i in range(1,10):
        n = 2 * (n+1)
    print(n)

9、给一个半径。求圆的面积和周长,圆周率为3.14.
(1)    
    R = int(input(输入一个半径))
    S = 3.14 * (R ** 2)
    L = 3.14 * 2R
    print("Area is" S)
    print("Perimeter is" L)
(2)
    R = int(input('r='))
    print('area=' + str(3.14*R*R))
    print('perimeter=' + str(3.14*2*R))

10、输入n个数,求每次输入后的算术平均数。
    count = 0
    sum = 0
    while True:
        num = input(">>>")   
        if not num:
            break
        else:
            num = int(num)
            sum += num
            count += 1   
            print(sum / count)

循环与判断的练习与作业

标签:Python   循环   判断   

原文地址:http://blog.51cto.com/13655145/2090931

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!