zoukankan      html  css  js  c++  java
  • Python3---练习题目

    第一题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    Python3 练习案例
    题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
    程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
    程序源代码:
    '''
    
    for i in range(1,5):
        for j in range(1,5):
            for k in range(1,5):
                if(i != k) and (i != j) and (j != k):
                    print(i,j,k)

    第二题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,
    低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;
    40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,
    超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
    
    程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
    '''
    
    i = int(input("请输入净利润:"))
    arr = [1000000,600000,400000,200000,100000]
    rat = [0.01,0.015,0.03,0.05,0.075,0.1]
    r = 0
    for idx in range(0,6):
        if i > arr[idx]:
            r += (i - arr[idx]) * rat[idx]
            print( (i - arr[idx]) * rat[idx] )
            i = arr[idx]
    print(r)

    第三题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?
    
    程序分析:在10000以内判断,将该数加上100后再开方,加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:
    '''
    
    import math
    '''
    math模块为浮点运算提供了对底层C函数库的访问:
        1;sqrt() 方法返回数字x的平方根。
    '''
    for i in range(10000):
        #将循环数值转化为整数型
        x = int(math.sqrt(i + 100))
        y = int(math.sqrt(i + 268))
        if (x * x == i+ 100) and ( y * y == i + 268):
            print(i)

    第四题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:输入某年某月某日,判断这一天是这一年的第几天?
    
    程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天:
    '''
    
    year = int(input("请输入年份:
    "))
    month = int(input("请输入月份:
    "))
    day = int(input("请输入天数:
    "))
    
    #Python的元组与列表类似,不同之处在于元组的元素不能修改。
    months = (0,31,59,90,120,151,181,212,243,273,304,334)
    if 0 < month < 12:
        sun = months[month - 1]
    else:
        print("Date error")
    
    sun += day
    leap = 0
    if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
        leap = 1
    if (leap == 1) and (month > 2):
        sun += 1
    
    print("it is the %dth day." % sun)

    第五题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:输入三个整数x,y,z,请把这三个数由小到大输出。
    程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,
    如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
    '''
    
    l = []
    for i in range(3):
        x = int(input("integer: 
    "))
        l.append(x)
    l.sort()
    print(l)
    '''
    1;序列是Python中最基本的数据结构.
    2;sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
    3;append()函数会将所有的参数视为一个列表元素插入到列表尾部
    '''

    第六题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:斐波那契数列。
    程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
    斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
    '''
    
    def fib(n):
        if n == 1 or n == 2:
            return 1
        return fib(n -1)+fib(n-2)
    
    print(fib(10))

    第七题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:将一个列表的数据复制到另一个列表中。
    程序分析:使用列表[:]。
    '''
    
    a = [1,3,'a',True]
    b = a[:]
    print(b)

    第八题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:输出9*9乘法口诀表。
    程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
    '''
    
    for i in range(1,10):
        for j in range(1,10):
            result = i * j
            print("%d * %d = % -3d" %(i,j,result))
        print("")

    第九题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:暂停一秒输出。
    程序分析:无。
    '''
    
    import time
    #dict.items返回可遍历的(键, 值) 元组数组。
    MyD = {1:'A',2:'B'}
    for key,value in dict.items(MyD):
        print(key,value)
        time.sleep(1) #暂停1秒

    第十题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
    假如兔子都不死,问每个月的兔子总数为多少?
    程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
    '''
    
    f1 = 1
    f2 = 1
    
    for i in range(1,21):
        print("%12d %12d" % (f1,f2))
        if (i % 2) == 0:
            print("")
        f1 = f1 + f2
        f2 = f1 + f2

    第十一题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:判断101-200之间有多少个素数,并输出所有素数。
    程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
    '''
    
    from math import sqrt
    from sys import stdout
    '''
    1;sqrt() 方法返回数字x的平方根。
    2;sys该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。
    3;stdout用于print()和表达式的输出和 提示input();
    '''
    
    h = 0
    leap = 1
    for m in range(101,201):
        k = int(sqrt(m + 1))
        for i in range(2,k+1):
            if m % i == 0:
                leap = 0
                break
        if leap == 1:
            print("%-4d" % m)
            h += 1
            if h % 10 == 0:
                print("")
        leap = 1

    第十二题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
    例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
    程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
    '''
    
    for n in range(100,1000):
        i = n / 100 # 提取百位数字
        j = n / 10 % 10 # 提取出十位数字
        k = n % 10 #提取个位数字
        if n == i ** 3 + j ** 3 + k ** 3:
            print(n)

    第十三题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
    
    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
    (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
    (2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
    (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
    '''
    
    from sys import stdout
    
    n = int(input("input number: 
    "))
    print("n = %d" % n)
    
    for i in range(2 , n + 1):
        while n != i:
            if n % i == 0:
                stdout.write(str(i))
                stdout.write("*")
                n = n / i
            else:
                break
    print("%d" % n)

    第十四题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
    
    程序分析:程序分析:(a>b)?a:b这是条件运算符的基本例子。
    '''
    
    score = int(input("input score: 
    "))
    
    if score >= 90:
        grade = 'A'
    elif score >= 60:
        grade = 'B'
    else:
        grade = 'C'
    
    print("%d belongs to %s " % (score,grade))

     第十五题:

    # -*- coding:utf-8 -*-
    #!/usr/bin/python
    
    import datetime
    
    if __name__ == "__main__":
        # 输出今日日期,格式为dd/mm/yyyy。 更多选项可以查看strftime()方法
        print(datetime.date.today().strftime('%d/%m/%Y'))
        # 创建日期对象
        Date = datetime.date(1941,1,5)
        print(Date.strftime('%d/%m/%Y'))
        #日期算术运算
        DateNext = Date + datetime.timedelta(days=4)
        print(DateNext)
        #日期替换
        DateT = Date.replace(year=Date.year + 1)
        print(DateT)

    第十六题:

    # -*- coding:utf-8 -*-
    #!/usr/bin/python
    
    import string
    
    '''
    题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
    程序分析:利用while语句,条件为输入的字符不为'
    '。
    '''
    '''
    Python标准库 - 文本处理服务 - string库
    '''
    if __name__ == "__main__":
        s = str(input('input a string: 
    '))
        letters = 0
        space = 0
        digit = 0
        others = 0
        for c in s:
            if c.isalpha():
                letters += 1
            elif c.isspace():
                space += 1
            elif c.isdigit():
                digit += 1
            else:
                others += 1
    
        print("char = %d
     space = %d
     digit = %d
     others = %d
    " % (letters,space,digit,others))

    第十七题:

    # -*- coding:utf-8 -*-
    #!/usr/bin/python
    
    
    '''
    题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
    程序分析:关键是计算出每一项的值。
    '''
    
    Tn = 0
    Sn = []
    
    n = int(input('n = :
    '))
    a = int(input('a = :
    '))
    
    for count in range(n):
        Tn = Tn + a
        a = a * 10
        Sn.append(Tn)
        print(Tn)
    #reduce() 函数会对参数序列中元素进行累积。
    Sn = reduce(lambda x,y : x + y,Sn)
    print(Sn)

    第十八题:

    # -*- coding:utf-8 -*-
    #!/usr/bin/python
    
    
    '''
    题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
    '''
    
    from sys import stdout
    
    for j in range(2,1001):
        k = []
        n = -1
        s = j
        for i in range(1,j):
            if j % i == 0 :
                n += 1
                s -= i
                k.append(i)
    
        if s == 0:
            print(j)
            for i in range(n):
                stdout.write((str(k[i])))
                stdout.write(' ')
            print(k[n])

    第十九题:

    # -*- coding:utf-8 -*-
    #!/usr/bin/python
    
    
    '''
    题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
    '''
    
    Sn = 100.0
    
    Hn = Sn / 2
    
    for n in range(2,11):
        Sn += 2 * Hn
        Hn /= 2
    
    print("Total of road is %f" % Sn)
    print("The tenth is %f meter" % Hn)

    第二十题:

    # -*- coding:utf-8 -*-
    #!/usr/bin/python
    
    
    '''
    题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
    
    程序分析:采取逆向思维的方法,从后往前推断。
    '''
    
    x2 = 1
    
    for day in range(9 , 0 , -1):
        print(day)
        x1 = (x2 + 1) * 2
        x2 = x1
    
    print(x1)

     第二十一题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。
    有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
    '''
    
    '''
    a 可能对应 y , z 
    c 对应 y  -----  a 对应 z ---- b 对应  x 
    '''
    '''
    函数说明:
        1;ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,
    它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,
    如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
        2;chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
    问题分析:
        首先我们通过for 循环分别提取出代表三个x , y ,Z 不同的字母的变量,接下来我们根据条件(a说他不和x比,c说他不和x,z比)来设定if语句。
    '''
    
    for i in range(ord('x'),ord('z') + 1):
        for j in range(ord('x'),ord('z') + 1):
            if i != j:
                for k in range(ord('x'),ord('z') + 1):
                    if(i != k) and (j != k):
                        if(i != ord('x')) and (k != ord('x')) and (k != ord('z')):
                            print("order is
     a -- %s
     b -- %s
     c -- %s" % (chr(i),chr(j),chr(k)))

    第二十二题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:打印出如下图案(菱形):
       *
      ***
     *****
    *******
     *****
      ***
       *
    程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。
    前四行规律: 第i行 : (2-i+1)个空格 + (2*i+1)一个*
    第0行 : 3个空格 + 1一个*
    第1行 : 2个空格 + 3一个*
    第2行 : 1个空格 + 4一个*
    第3行 : 0个空格 + 7一个*
    后四行规律:第i行 : (i+1)个空格 + (4 - 2*i + i)一个*
    第0行 : 1个空格 + 5一个*
    第1行 : 2个空格 + 3一个*
    第2行 : 3个空格 + 1一个*
    '''
    
    from sys import stdout
    
    for i in range(4): #提取行数,i 分别表示 (0,1,2,3)
        print(i)
        for j in range(2 - i + 1):
            stdout.write(' ')
        for k in range(2 * i + 1):
            stdout.write('*')
        print
    
    for i in range(3):
        print(i)
        for j in range(i + 1):
            stdout.write(' ')
        for k in range(4 - 2 * i + 1):
            stdout.write('*')
    
        print

    第二十三题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
    程序分析:请抓住分子与分母的变化规律。
    思路解析:
        1;使用变量分别表示分子,分母。整个需要钱20项的和,那么分子,分母的规律变化需要循环20次。
        2;前面想加的和设定一个变量存储他们的值
    '''
    
    a = 2.0
    b = 1.0
    s = 0
    
    for i in range(1,21):
        s += a / b
        t = a
        a = a + b
        b = t
    print(s)

    第二十四题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:求1+2!+3!+...+20!的和。
    程序分析:参考23题
    '''
    
    n = 0
    s = 0
    t = 1
    
    for n in range(1,21):
        t *= n
        s += t
    print("1! + 2! + 3! + ... + 20! = %d" % s)

     第二十五题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:利用递归方法求5!。
    程序分析:递归公式:fn=fn_1*4!
    '''
    
    def fact(j):
        sum = 0
        if j == 0:
            sum = 1
        else:
            sum = j * fact(j - 1)
        return sum
    
    for i in range(5):
        print("%d! = %d" % (i,fact(i)))

    第二十六题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
    利用字符串切片提取字符来操作
    '''
    
    def output(s,l):
        if l == 0:
            return
        print(s[l-1])
        output(s,l-1)
    
    s = input('Input a string : ')
    l = len(s)
    output(s,l)

    第二十七题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,
    他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。
    最后问第一个人,他说是10岁。请问第五个人多大?
    '''
    
    def age(n):
        if n == 1: c = 10
        else:
            c = age(n-1) + 2
        return c
    
    print(age(5))

    第二十八题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
    
    程序分析:学会分解出每一位数。
    '''
    
    x = int(input("请输入一个数:
    "))
    
    a = x // 10000 # 提取第五位数字
    b = x % 10000 // 1000 #提取第四位数字
    c = x % 1000 // 100 # 提取第三位数字
    d = x % 100 // 10 # 提取第二位数字
    e = x % 10  # 提取第一位数字
    
    if a != 0:
        print("5位数:",e,d,c,b,a)
    elif b != 0:
        print("4位数:", e, d, c, b)
    elif c != 0:
        print("3位数:", e, d, c)
    elif d != 0:
        print("2位数:", e, d)
    elif e != 0:
        print("1位数:", e)

    第二十九题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
    12321
    '''
    
    a = int(input("请输入一个数字:
    "))
    x = str(a)
    flag = True
    
    for i in range(len(x)//2):
        if x[i] != x[-i - 1]:
            flag = False
            break
    
    if flag:
        print("%d 是一个回文数!" % a)
    else:
        print("%d 不是一个回文数!" % a)

    第三十题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
    
    程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。。
    '''
    
    letter = input("please input:")
    # while letter  != 'Y':
    if letter == 'S':
        print('please input second letter:')
        letter = input("please input:")
        if letter == 'a':
            print('Saturday')
        elif letter == 'u':
            print('Sunday')
        else:
            print('data error')
    
    elif letter == 'F':
        print('Friday')
    
    elif letter == 'M':
        print('Monday')
    
    elif letter == 'T':
        print('please input second letter')
        letter = input("please input:")
    
        if letter == 'u':
            print('Tuesday')
        elif letter == 'h':
            print('Thursday')
        else:
            print('data error')
    
    elif letter == 'W':
        print('Wednesday')
    else:
        print('data error')

    第三十一题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:按相反的顺序输出列表的值。
    '''
    '''
    解析:
    [ 1 2 3 4 5 ]
    print(a[-1]) ###取最后一个元素
    [5]
    print(a[:-1])  ### 除了最后一个取全部
    [ 1 2 3 4 ]
    print(a[::-1]) ### 取从后向前(相反)的元素
    [ 5 4 3 2 1 ]
    print(a[2::-1]) ### 取从下标为2的元素翻转读取
    [ 3 2 1 ]
    '''
    
    a = ['one', 213 , True ]
    for i in a[::-1]:
        print(i)

    第三十二题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:按逗号分隔列表。
    函数解析:
        1;Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
    '''
    
    L = [1,2,3,"ONE",True,{'A':123}]
    S1 = ','.join(str(n) for n in L)
    S2 = '666'.join(str(n) for n in L)
    print(S1)
    print(S2)

    第三十三题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:练习函数调用。
    '''
    
    def hello_world():
        print("hello world")
    
    def three_hellos():
        for i in range(3):
            hello_world()
    
    if __name__ == "__main__":
        three_hellos()

    第三十四题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:文本颜色设置。
    
    程序分析:无。
    '''
    
    class bcolors:
        HEADER = '33[95m'
        OKBLUE = '33[94m'
        OKGREEN = '33[92m'
        WARNING = '33[93m'
        FAIL = '33[91m'
        ENDC = '33[0m'
        BOLD = '33[1m'
        UNDERLINE = '33[4m'
    
    print(bcolors.WARNING + "警告的颜色字体?" + bcolors.ENDC)

    第三十五题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:求100之内的素数。
    '''
    from math import sqrt
    '''
    函数解析:
        1;sqrt() 方法返回数字x的平方根。
    '''
    if __name__ == "__main__":
        N = 100
        a = range(0,N)
        for i in range(2,int(sqrt(N))):
            for j in range(i+1 , N):
                if (a[i] != 0) and (a[j] != 0):
                    if a[i] % a[j] == 0:
                        a[j] = 0
    
        print
        for i in range(2,N):
            if a[i] != 0:
                print("%5d" % a[i])
                if (i - 2) % 10 == 0:
                    print

    第三十六题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:对10个数进行排序。
    
    程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。
    '''
    
    if __name__ == "__main__":
        N = 10
        # input data
        print("please input ten num:
    ")
        l = []
        for i in range(N):
            l.append(int(input("input a number:
    ")))
        print
        for i in range(N):
            print(l[i])
        print
    
        # sort tem num
        for i in range(N - 1):
            min = i
            for j in range(i + 1 , N):
                if l[min] > l[j] : min = j
            l[i],l[min] = l[min],l[i]
    
        print("after sorted")
        for i in range(N):
            print(l[i])

    第三十七题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:求一个3*3矩阵对角线元素之和。
    
    程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
    '''
    
    if __name__ == "__main__":
        a = []
        sum = 0.0
        for i in range(3):
            a.append([])
            for j in range(3):
                a[i].append(float(input("input num:
    ")))
        print(a)
        for i in range(3):
            sum += a[i][i]
    
        print(sum)

    第三十八题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
    程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
    '''
    
    if __name__ == "__main__":
        # 方案一:
        a = [1,2,3,4,5,6,7,8,9,0]
        print("original list is:")
        for i in range(len(a)):
            print(a[i])
    
        number = int(input("insert a new number: 
    "))
        end = a[9]
        if number > end:
            a.append(number)
            #a[10] = number
        else:
            for i in range(10):
                if a[i] > number:
                    temp1 = a[i]
                    a[i] = number
                    for j in range(i + 1, 11):
                        temp2 = a[j]
                        a[j] = temp1
                        temp1 = temp2
                    break
    
        for i in range(11):
            print(a[i])

    第三十九题:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:将一个数组逆序输出。
    
    程序分析:用第一个与最后一个交换。
    '''
    
    if __name__ == "__main__":
        a = [9,3,4,6,1]
        N = len(a)
    
        print(a)
        for i in range(len(a) // 2):
            a[i],a[N -i -1] = a[N -i -1],a[i]
        print(a)

     第四十题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:模仿静态变量的用法。
    '''
    def varfunc():
        var = 0
        print("var = %d" % var)
        var += 1
    
    if __name__ == "__main__":
        for i in range(3):
            varfunc()
    
    #类的属性
    #作为类的一个属性吧
    class Static:
        StaticVar = 5
        def varfunc(self):
            self.StaticVar += 1
            print(self.StaticVar)
    
    print(Static.StaticVar)
    a = Static()
    for i in range(3):
        a.varfunc()

    第四十一题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:学习使用auto定义变量的用法。
    程序分析:没有auto关键字,使用变量作用域来举例吧。
    '''
    
    num = 2
    def autofunc():
        num = 1
        print("internal block num = %d" % num )
        num += 1
    
    for i in range(3):
        print("The num = %d" % num)
        num += 1
        autofunc()

    第四十二题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:模仿静态变量(static)另一案例。
    程序分析:演示一个python作用域使用方法
    '''
    
    class Num:
        nNum = 1
        def inc(self):
            self.nNum += 1
            print("nNum = %d" % self.nNum)
    
    if __name__ == "__main__":
        nNum = 2
        inst = Num()
        for i in range(3):
            nNum += 1
            print("The num = %d" % nNum)
            inst.inc()
    
            

    第四十三题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:统计 1 到 100 之和。
    '''
    
    tmp = 0
    for i in range(1,101):
        tmp += i
    
    print("The sum is %d" % tmp)

    第四十四题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    求输入数字的平方,如果平方运算后小于 50 则退出。
    '''
    
    TURE = 1
    FALSE = 0
    def SQ(x):
        return x * x
    
    print("如果输入的数字小于 50 ,程序将停止运行。")
    again = 1
    while again:
        num = int(input("Please input number: "))
        print("运算结果为%d" % (SQ(num)))
        if num >= 50:
            again = TURE
        else:
            again = FALSE

    第四十五题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:两个变量值互换。
    '''
    
    def exchange(a,b):
        a,b = b,a
        return (a,b)
    
    if __name__ == "__main__":
        x = 10
        y = 20
        print("x = %d , y = %d" % (x,y))
        x,y = exchange(x,y)
        print("x = %d , y = %d" % (x,y))

    第四十六题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:数字比较。
    '''
    
    if __name__ == "__main__":
        i = 10
        j = 20
        if i > j:
            print("%d 大于 %d" % (i,j))
        elif i == j:
            print("%d 等于 %d" % (i, j))
        elif i < j:
            print("%d 小于 %d" % (i, j))
        else:
            print("未知")

    第四十七题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:使用lambda来创建匿名函数。
    '''
    
    MAXIMUM = lambda x,y : (x > y) * x + (x < y) * y
    MINIMUM = lambda x,y : (x > y) * y + (x < y) * x
    
    if __name__ == "__main__":
        a = 10
        b = 20
        print("The largar one is %d" % MAXIMUM(a,b))
        print("The lower one is %d" % MINIMUM(a, b))

    第四十八题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:输出一个随机数。
    程序分析:使用 random 模块。
    '''
    
    import random
    
    print(random.uniform(10,20))

     第四十九题:

    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    '''
    题目:学习使用按位与 & 。
    程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1。
    '''
    
    if __name__ == "__main__":
        a = 77
        b = a & 3
        print("a & b = %d" % b)
        b &= 7
        print("a & b = %d" % b)
  • 相关阅读:
    jsp session练习简单的登录
    JSP练习:编写登录程序,错误时跳转
    1.JSON抓取文件解析文件
    java ee 在数据库中执行增删改查
    java ee cookie方法键值对输出
    java ee cookie方法包括在cookie输出的中文转换
    java编写在数据库中按条件查询数据
    java 在数据库中添加新信息
    java ee 输出三角形
    java ee 五的阶乘
  • 原文地址:https://www.cnblogs.com/aaron456-rgv/p/12549059.html
Copyright © 2011-2022 走看看