python习题(1-40)

系统 1454 0

【程序 1】
题目:有 1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

            
              count
              
                =
              
              
                0
              
              
                for
              
               a 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                5
              
              
                )
              
              
                :
              
              
                for
              
               b 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                5
              
              
                )
              
              
                :
              
              
                for
              
               c 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                5
              
              
                )
              
              
                :
              
              
                if
              
               a
              
                !=
              
              b 
              
                and
              
               a
              
                !=
              
              c 
              
                and
              
               b
              
                !=
              
              c
              
                :
              
              
                print
              
              
                (
              
              
                '%d%d%d'
              
              
                %
              
              
                (
              
              a
              
                ,
              
              b
              
                ,
              
              c
              
                )
              
              
                )
              
              
                count
              
                +=
              
              
                1
              
              
                print
              
              
                (
              
              
                '一共有%s个'
              
              
                %
              
              count
              
                )
              
            
          

【程序 2】
题目:企业发放的奖金根据利润提成。利润 (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 ,求应发放奖金总数?

            
              mon
              
                =
              
              
                float
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入利润金额:'
              
              
                )
              
              
                )
              
              
mm
              
                =
              
              
                0.0
              
              
                #奖金
              
              
                if
              
               mon
              
                >
              
              
                0
              
              
                and
              
               mon
              
                <=
              
              
                10
              
              
                :
              
              
    mm
              
                =
              
              mon
              
                *
              
              
                0.1
              
              
                elif
              
               mon
              
                <
              
              
                20
              
              
                :
              
              
    mm
              
                =
              
              
                1
              
              
                +
              
              
                (
              
              mon
              
                -
              
              
                10
              
              
                )
              
              
                *
              
              
                0.075
              
              
                elif
              
               mon
              
                <
              
              
                40
              
              
                :
              
              
    mm
              
                =
              
              
                1
              
              
                +
              
              
                0.75
              
              
                +
              
              
                (
              
              mon
              
                -
              
              
                20
              
              
                )
              
              
                *
              
              
                0.05
              
              
                elif
              
               mon
              
                <
              
              
                60
              
              
                :
              
              
    mm
              
                =
              
              
                1
              
              
                +
              
              
                0.75
              
              
                +
              
              
                1
              
              
                +
              
              
                (
              
              mon
              
                -
              
              
                40
              
              
                )
              
              
                *
              
              
                0.03
              
              
                elif
              
               mon
              
                <=
              
              
                100
              
              
                :
              
              
    mm
              
                =
              
              
                1
              
              
                +
              
              
                0.75
              
              
                +
              
              
                1
              
              
                +
              
              
                1.2
              
              
                +
              
              
                (
              
              mon
              
                -
              
              
                60
              
              
                )
              
              
                +
              
              
                0.015
              
              
                elif
              
               mon
              
                >
              
              
                100
              
              
                :
              
              
    mm
              
                =
              
              
                1
              
              
                +
              
              
                0.75
              
              
                +
              
              
                1
              
              
                +
              
              
                1.2
              
              
                +
              
              
                (
              
              mon
              
                -
              
              
                100
              
              
                )
              
              
                *
              
              
                0.01
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              
                '输入错误'
              
              
                )
              
              
                print
              
              
                (
              
              
                '您的奖金为:%s'
              
              
                %
              
              mm
              
                )
              
            
          

【程序 3】
题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数, 请问该数是多少?

            
              i
              
                =
              
              
                1
              
              
                while
              
              
                1
              
              
                :
              
              
                if
              
              
                (
              
              i
              
                +
              
              
                100
              
              
                )
              
              
                **
              
              
                0.5
              
              
                %
              
              
                1
              
              
                ==
              
              
                0
              
              
                and
              
              
                (
              
              i
              
                +
              
              
                168
              
              
                )
              
              
                **
              
              
                0.5
              
              
                %
              
              
                1
              
              
                ==
              
              
                0
              
              
                :
              
              
                print
              
              
                (
              
              i
              
                )
              
              
                break
              
              
                ;
              
              
    i
              
                +=
              
              
                1
              
            
          

【程序 4】
题目:输入某年某月某日,判断这一天是这一年的第几天?

            
              
                # 思路:先判断是否为闰年,这关系到 2 月份的天数。
              
              
                # 之后再根据月份值把前几个月的天数累积加起来,最后再加上个“日”,就可以了。
              
              
dat 
              
                =
              
              
                input
              
              
                (
              
              
                '请输入某年某月某日,格式为 yyyy-mm-dd :'
              
              
                )
              
              
y 
              
                =
              
              
                int
              
              
                (
              
              dat
              
                [
              
              
                0
              
              
                :
              
              
                4
              
              
                ]
              
              
                )
              
              
                #获取年份
              
              
m 
              
                =
              
              
                int
              
              
                (
              
              dat
              
                [
              
              
                5
              
              
                :
              
              
                7
              
              
                ]
              
              
                )
              
              
                #获取月份
              
              
d 
              
                =
              
              
                int
              
              
                (
              
              dat
              
                [
              
              
                8
              
              
                :
              
              
                ]
              
              
                )
              
              
                #获取日
              
              

ly 
              
                =
              
              
                False
              
              
                if
              
               y
              
                %
              
              
                100
              
              
                ==
              
              
                0
              
              
                :
              
              
                #若年份能被100整除
              
              
                if
              
               y
              
                %
              
              
                400
              
              
                ==
              
              
                0
              
              
                :
              
              
                #且能被400整除
              
              
        ly 
              
                =
              
              
                True
              
              
                #则是闰年
              
              
                else
              
              
                :
              
              
        ly 
              
                =
              
              
                False
              
              
                elif
              
               y
              
                %
              
              
                4
              
              
                ==
              
              
                0
              
              
                :
              
              
                #其它情况下,若能被4整除
              
              
    ly 
              
                =
              
              
                True
              
              
                #则为闰年
              
              
                else
              
              
                :
              
              
    ly 
              
                =
              
              
                False
              
              
                if
              
               ly 
              
                ==
              
              
                True
              
              
                :
              
              
                #若为闰年,则2月份有29天
              
              
    ms 
              
                =
              
              
                [
              
              
                31
              
              
                ,
              
              
                29
              
              
                ,
              
              
                31
              
              
                ,
              
              
                30
              
              
                ,
              
              
                31
              
              
                ,
              
              
                30
              
              
                ,
              
              
                31
              
              
                ,
              
              
                31
              
              
                ,
              
              
                30
              
              
                ,
              
              
                31
              
              
                ,
              
              
                30
              
              
                ,
              
              
                31
              
              
                ]
              
              
                else
              
              
                :
              
              
    ms 
              
                =
              
              
                [
              
              
                31
              
              
                ,
              
              
                28
              
              
                ,
              
              
                31
              
              
                ,
              
              
                30
              
              
                ,
              
              
                31
              
              
                ,
              
              
                30
              
              
                ,
              
              
                31
              
              
                ,
              
              
                31
              
              
                ,
              
              
                30
              
              
                ,
              
              
                31
              
              
                ,
              
              
                30
              
              
                ,
              
              
                31
              
              
                ]
              
              

days 
              
                =
              
              
                0
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                13
              
              
                )
              
              
                :
              
              
                #从1到12逐一判断,以确定月份
              
              
                if
              
               i 
              
                ==
              
               m
              
                :
              
              
                for
              
               j 
              
                in
              
              
                range
              
              
                (
              
              i
              
                -
              
              
                1
              
              
                )
              
              
                :
              
              
                #确定月份i之后,则将ms列表中的前i-1项相加
              
              
            days 
              
                +=
              
               ms
              
                [
              
              j
              
                ]
              
              
                print
              
              
                (
              
              
                '%s是该年份的第%s天。'
              
              
                %
              
              
                (
              
              dat
              
                ,
              
              
                (
              
              days 
              
                +
              
               d
              
                )
              
              
                )
              
              
                )
              
              
                #最后再加上“日”,即是答案
              
              
                # 方法二
              
              
                import
              
               datetime

y 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入4位数字的年份:'
              
              
                )
              
              
                )
              
              
                #获取年份
              
              
m 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入月份:'
              
              
                )
              
              
                )
              
              
                #获取月份
              
              
d 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入是哪一天:'
              
              
                )
              
              
                )
              
              
                #获取“日”
              
              

targetDay 
              
                =
              
               datetime
              
                .
              
              date
              
                (
              
              y
              
                ,
              
               m
              
                ,
              
               d
              
                )
              
              
                #将输入的日期格式化成标准的日期
              
              
                print
              
              
                (
              
              targetDay 
              
                -
              
               datetime
              
                .
              
              date
              
                (
              
              targetDay
              
                .
              
              year
              
                -
              
              
                1
              
              
                ,
              
              
                12
              
              
                ,
              
              
                31
              
              
                )
              
              
                )
              
              
                #减去上一年最后一天,可得解
              
              
                # 方法三
              
              
                import
              
               datetime

y 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入4位数字的年份:'
              
              
                )
              
              
                )
              
              
                #获取年份
              
              
m 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入月份:'
              
              
                )
              
              
                )
              
              
                #获取月份
              
              
d 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入是哪一天:'
              
              
                )
              
              
                )
              
              
                #获取“日”
              
              

targetDay 
              
                =
              
               datetime
              
                .
              
              date
              
                (
              
              y
              
                ,
              
               m
              
                ,
              
               d
              
                )
              
              
                #将输入的日期格式化成标准的日期
              
              
dayCount 
              
                =
              
               targetDay 
              
                -
              
               datetime
              
                .
              
              date
              
                (
              
              targetDay
              
                .
              
              year 
              
                -
              
              
                1
              
              
                ,
              
              
                12
              
              
                ,
              
              
                31
              
              
                )
              
              
                #减去上一年最后一天
              
              
                print
              
              
                (
              
              
                '%s是%s年的第%s天。'
              
              
                %
              
              
                (
              
              targetDay
              
                ,
              
               y
              
                ,
              
               dayCount
              
                .
              
              days
              
                )
              
              
                )
              
            
          

【程序 5】
题目:输入三个整数 x,y,z,请把这三个数由小到大输出。

            
              a
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入A的值:'
              
              
                )
              
              
                )
              
              
b
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入B的值:'
              
              
                )
              
              
                )
              
              
c
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入C的值:'
              
              
                )
              
              
                )
              
              
                if
              
               a
              
                >
              
              b
              
                :
              
              
    a
              
                ,
              
              b
              
                =
              
              b
              
                ,
              
              a

              
                if
              
               a
              
                >
              
              c
              
                :
              
              
    a
              
                ,
              
              c
              
                =
              
              c
              
                ,
              
              a

              
                if
              
               b
              
                >
              
              c
              
                :
              
              
    b
              
                ,
              
              c
              
                =
              
              c
              
                ,
              
              b


              
                print
              
              
                (
              
              a
              
                ,
              
              b
              
                ,
              
              c
              
                )
              
            
          

【程序 6】
题目:用*号输出字母 C 的图案。

            
              
                def
              
              
                printC
              
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                " ***** "
              
              
                )
              
              
                print
              
              
                (
              
              
                " ** * "
              
              
                )
              
              
                print
              
              
                (
              
              
                " ** "
              
              
                )
              
              
                print
              
              
                (
              
              
                " ** "
              
              
                )
              
              
                print
              
              
                (
              
              
                " ** * "
              
              
                )
              
              
                print
              
              
                (
              
              
                " ***** "
              
              
                )
              
              

printC
              
                (
              
              
                )
              
            
          

【程序 7】
题目:输出特殊图案,请在 c 环境中运行,看一看, Very Beautiful!

            
              a
              
                =
              
              
                176
              
              
b
              
                =
              
              
                219
              
              
                print
              
              
                (
              
              
                '%c%c%c%c%c'
              
              
                %
              
              
                (
              
              b
              
                ,
              
              a
              
                ,
              
              a
              
                ,
              
              a
              
                ,
              
              b
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                '%c%c%c%c%c'
              
              
                %
              
              
                (
              
              a
              
                ,
              
              b
              
                ,
              
              a
              
                ,
              
              b
              
                ,
              
              a
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                '%c%c%c%c%c'
              
              
                %
              
              
                (
              
              a
              
                ,
              
              a
              
                ,
              
              b
              
                ,
              
              a
              
                ,
              
              a
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                '%c%c%c%c%c'
              
              
                %
              
              
                (
              
              a
              
                ,
              
              b
              
                ,
              
              a
              
                ,
              
              b
              
                ,
              
              a
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                '%c%c%c%c%c'
              
              
                %
              
              
                (
              
              b
              
                ,
              
              a
              
                ,
              
              a
              
                ,
              
              a
              
                ,
              
              b
              
                )
              
              
                )
              
            
          

【程序 8】
题目:输出 9*9 口诀表。

            
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                10
              
              
                )
              
              
                :
              
              
                for
              
               j 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              i
              
                +
              
              
                1
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              f
              
                '{j}*{i}={i*j}'
              
              
                ,
              
              end
              
                =
              
              
                ' '
              
              
                )
              
              
                print
              
              
                (
              
              
                )
              
            
          

【程序 9】
题目:要求输出国际象棋棋盘。

            
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                8
              
              
                )
              
              
                :
              
              
                for
              
               j 
              
                in
              
              
                range
              
              
                (
              
              
                8
              
              
                )
              
              
                :
              
              
                if
              
              
                (
              
              
                (
              
              i 
              
                +
              
               j
              
                )
              
              
                %
              
              
                2
              
              
                ==
              
              
                0
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                chr
              
              
                (
              
              
                219
              
              
                )
              
              
                *
              
              
                2
              
              
                ,
              
              end
              
                =
              
              
                ""
              
              
                )
              
              
                #因为要连续打印一行,所以不能使用默认的print函数
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              
                " "
              
              
                ,
              
              end
              
                =
              
              
                ""
              
              
                )
              
              
                print
              
              
                (
              
              
                ""
              
              
                )
              
            
          

【程序 10】
题目:打印楼梯,同时在楼梯上方打印两个笑脸。

            
              
                #看不懂题
              
            
          

【程序 11】
题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到 第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

            
              N
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                "输入月份:"
              
              
                )
              
              
                )
              
              
r 
              
                =
              
              
                [
              
              
                1
              
              
                ,
              
              
                1
              
              
                ,
              
              
                1
              
              
                ]
              
              
                for
              
               f 
              
                in
              
              
                range
              
              
                (
              
              
                4
              
              
                ,
              
              N
              
                +
              
              
                1
              
              
                )
              
              
                :
              
              
	n 
              
                =
              
               r
              
                [
              
              f
              
                -
              
              
                2
              
              
                ]
              
              
                +
              
               r
              
                [
              
              f
              
                -
              
              
                3
              
              
                ]
              
              
	r
              
                .
              
              append
              
                (
              
              n
              
                )
              
              
                print
              
              
                (
              
              r
              
                )
              
            
          

【程序 12】
题目:判断 101-200 之间有多少个素数,并输出所有素数。

            
              l
              
                =
              
              
                [
              
              
                ]
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                101
              
              
                ,
              
              
                200
              
              
                )
              
              
                :
              
              
                for
              
               j 
              
                in
              
              
                range
              
              
                (
              
              
                2
              
              
                ,
              
              i
              
                -
              
              
                1
              
              
                )
              
              
                :
              
              
                if
              
               i 
              
                %
              
               j
              
                ==
              
              
                0
              
              
                :
              
              
                break
              
              
                else
              
              
                :
              
                  
        l
              
                .
              
              append
              
                (
              
              i
              
                )
              
              
                print
              
              
                (
              
              l
              
                )
              
              
                print
              
              
                (
              
              
                '总数为:%d'
              
              
                %
              
              
                len
              
              
                (
              
              l
              
                )
              
              
                )
              
            
          

【程序 13】
题目:打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立
方和等于该数本身。例如: 153 是一个“水仙花数”,因为 153=1 的三次方+5的三次方 +3的三次方。

            
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                100
              
              
                ,
              
              
                1000
              
              
                )
              
              
                :
              
              
    a
              
                =
              
              
                int
              
              
                (
              
              i
              
                /
              
              
                100
              
              
                )
              
              
    b
              
                =
              
              
                int
              
              
                (
              
              
                (
              
              i
              
                -
              
              
                (
              
              a
              
                *
              
              
                100
              
              
                )
              
              
                )
              
              
                /
              
              
                10
              
              
                )
              
              
    c
              
                =
              
              
                int
              
              
                (
              
              i
              
                %
              
              
                10
              
              
                )
              
              
                if
              
               i
              
                ==
              
              
                (
              
              a
              
                **
              
              
                3
              
              
                +
              
              b
              
                **
              
              
                3
              
              
                +
              
              c
              
                **
              
              
                3
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              i
              
                )
              
            
          

【程序 14】
题目:将一个正整数分解质因数。例如:输入 90, 打印出 90=2* 3 * 3 * 5 。

            
              
                #将一个正整数分解质因数。例如:输入 90, 打印出 90=2* 3 * 3 * 5 。
              
              

a
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入一个数:'
              
              
                )
              
              
                )
              
              
l
              
                =
              
              
                [
              
              
                ]
              
              
i
              
                =
              
              
                2
              
              
                print
              
              
                (
              
              a
              
                ,
              
              
                '='
              
              
                ,
              
              end
              
                =
              
              
                ''
              
              
                )
              
              
                if
              
               a
              
                <
              
              
                1
              
              
                :
              
              
                print
              
              
                (
              
              
                '输入数字错误.'
              
              
                )
              
              
                else
              
              
                :
              
              
                while
              
              
                1
              
              
                :
              
              
                if
              
               a
              
                %
              
              i
              
                ==
              
              
                0
              
              
                :
              
              
                print
              
              
                (
              
              i
              
                ,
              
              
                '*'
              
              
                ,
              
              end
              
                =
              
              
                ''
              
              
                )
              
              
           l
              
                .
              
              append
              
                (
              
              i
              
                )
              
              
           a
              
                =
              
              a
              
                //
              
              i
           i
              
                =
              
              
                2
              
              
                elif
              
               i
              
                ==
              
              a
              
                -
              
              
                1
              
              
                :
              
              
                print
              
              
                (
              
              i
              
                +
              
              
                1
              
              
                )
              
              
           l
              
                .
              
              append
              
                (
              
              i
              
                +
              
              
                1
              
              
                )
              
              
                break
              
              
                else
              
              
                :
              
              
           i
              
                +=
              
              
                1
              
            
          

【程序 15】
题目:利用条件运算符的嵌套来完成此题:学习成绩 >=90 分的同学用 A 表示,60-89 分 之间的用 B 表示,60 分以下的用 C表示。

            
              a
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入您的成绩:'
              
              
                )
              
              
                )
              
              
                if
              
               a
              
                >=
              
              
                90
              
              
                and
              
               a
              
                <=
              
              
                100
              
              
                :
              
              
                print
              
              
                (
              
              
                'A'
              
              
                )
              
              
                elif
              
               a
              
                >
              
              
                60
              
              
                :
              
              
                print
              
              
                (
              
              
                'B'
              
              
                )
              
              
                elif
              
               a
              
                >
              
              
                0
              
              
                :
              
              
                print
              
              
                (
              
              
                'C'
              
              
                )
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              
                '输出错误'
              
              
                )
              
            
          

【程序 17】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

            
              s
              
                =
              
              
                input
              
              
                (
              
              
                '请输入一个字符串:'
              
              
                )
              
              

dic
              
                =
              
              
                {
              
              
                'letter'
              
              
                :
              
              
                0
              
              
                ,
              
              
                'integer'
              
              
                :
              
              
                0
              
              
                ,
              
              
                'space'
              
              
                :
              
              
                0
              
              
                ,
              
              
                'other'
              
              
                :
              
              
                0
              
              
                }
              
              
                for
              
               i 
              
                in
              
               s
              
                :
              
              
                if
              
               i 
              
                >
              
              
                'a'
              
              
                and
              
               i 
              
                <
              
              
                'z'
              
              
                or
              
               i 
              
                >
              
              
                'A'
              
              
                and
              
               i 
              
                <
              
              
                'Z'
              
              
                :
              
              
        dic
              
                [
              
              
                'letter'
              
              
                ]
              
              
                +=
              
              
                1
              
              
                elif
              
               i 
              
                in
              
              
                '0123456789'
              
              
                :
              
              
        dic
              
                [
              
              
                'integer'
              
              
                ]
              
              
                +=
              
              
                1
              
              
                elif
              
               i 
              
                ==
              
              
                ' '
              
              
                :
              
              
        dic
              
                [
              
              
                'space'
              
              
                ]
              
              
                +=
              
              
                1
              
              
                else
              
              
                :
              
              
        dic
              
                [
              
              
                'other'
              
              
                ]
              
              
                +=
              
              
                1
              
              
                print
              
              
                (
              
              
                '统计字符串:'
              
              
                ,
              
              dic
              
                )
              
              
                print
              
              
                (
              
              dic
              
                )
              
              
                for
              
               i 
              
                in
              
               dic
              
                :
              
              
                print
              
              
                (
              
              
                '%s='
              
              
                %
              
              i
              
                ,
              
              dic
              
                [
              
              i
              
                ]
              
              
                )
              
            
          

【程序 18】
题目:求 s=a + aa + aaa + aaaa + aa…a的值,其中 a 是一个数字。例如2+22+222+2222+22222(此时,共有 5 个数相加) ,几个数相加有键盘控制。

            
              a
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入基数:'
              
              
                )
              
              
                )
              
              
b
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入个数:'
              
              
                )
              
              
                )
              
              
                sum
              
              
                =
              
              
                0
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              b
              
                )
              
              
                :
              
              
                sum
              
              
                +=
              
              a
    a
              
                =
              
              a
              
                +
              
              a
              
                *
              
              
                10
              
              
                print
              
              
                (
              
              
                sum
              
              
                )
              
            
          

【程序 19】
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如 6=1+2+3。编 程找出 1000 以内的所有完数。

            
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                1001
              
              
                )
              
              
                :
              
              
                sum
              
              
                =
              
              
                0
              
              
    l
              
                =
              
              
                [
              
              
                ]
              
              
                for
              
               m 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              i
              
                )
              
              
                :
              
              
                if
              
               i
              
                %
              
              m
              
                ==
              
              
                0
              
              
                and
              
               i
              
                !=
              
              m
              
                :
              
              
                sum
              
              
                +=
              
              m
            l
              
                .
              
              append
              
                (
              
              m
              
                )
              
              
                if
              
              
                sum
              
              
                ==
              
              i
              
                :
              
              
                print
              
              
                (
              
              i
              
                ,
              
              
                'its factors are'
              
              
                ,
              
              l
              
                )
              
              
    l
              
                =
              
              
                [
              
              
                ]
              
            
          

【程序 20】
题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10 次落地时,共经过多少米?第 10 次反弹多高?

            
              a
              
                =
              
              
                100
              
              
                sum
              
              
                =
              
              
                100
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                10
              
              
                )
              
              
                :
              
              
                sum
              
              
                +=
              
              a
    a
              
                /=
              
              
                2
              
              
                print
              
              
                (
              
              
                sum
              
              
                )
              
            
          

【程序 21】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半, 又多吃了一个。 以后每天早上都吃了前一
天剩下的一半多一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘 了多少。

            
              dl
              
                =
              
              
                1
              
              
df
              
                =
              
              
                0
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                10
              
              
                )
              
              
                :
              
              
    df 
              
                =
              
              
                2
              
              
                *
              
              
                (
              
              dl 
              
                +
              
              
                1
              
              
                )
              
              
    dl 
              
                =
              
               df

              
                print
              
              
                (
              
              
                "第一天摘了%d个桃子:"
              
              
                ,
              
              df
              
                )
              
            
          

【程序 22】
题目:两个乒乓球队进行比赛,各出三人。甲队为 a,b,c 三人,乙队为 x,y,z 三人。已
抽签决定比赛名单。 有人向队员打听比赛的名单。 a 说他不和 x 比,c 说他不和 x,z 比, 请编程序找出三队赛手的名单。

            
              
                import
              
               itertools


              
                for
              
               i 
              
                in
              
               itertools
              
                .
              
              permutations
              
                (
              
              
                'xyz'
              
              
                )
              
              
                :
              
              
                if
              
               i
              
                [
              
              
                0
              
              
                ]
              
              
                !=
              
              
                'x'
              
              
                and
              
               i
              
                [
              
              
                2
              
              
                ]
              
              
                !=
              
              
                'x'
              
              
                and
              
               i
              
                [
              
              
                2
              
              
                ]
              
              
                !=
              
              
                'z'
              
              
                :
              
              
                print
              
              
                (
              
              
                'a vs %s, b vs %s, c vs %s'
              
              
                %
              
              
                (
              
              i
              
                [
              
              
                0
              
              
                ]
              
              
                ,
              
               i
              
                [
              
              
                1
              
              
                ]
              
              
                ,
              
               i
              
                [
              
              
                2
              
              
                ]
              
              
                )
              
              
                )
              
            
          

【程序 23】
题目:打印出如下图案(菱形)

            
              nu 
              
                =
              
              
                1
              
              
                # 开始值
              
              
k 
              
                =
              
              
                2
              
              
                # 变量值
              
              
                while
              
               nu 
              
                >=
              
              
                0
              
              
                :
              
              
                print
              
              
                (
              
              
                int
              
              
                (
              
              
                (
              
              
                7
              
              
                -
              
               nu
              
                )
              
              
                /
              
              
                2
              
              
                )
              
              
                *
              
              
                ' '
              
              
                +
              
              
                '*'
              
              
                *
              
               nu
              
                )
              
              
    nu 
              
                +=
              
               k
    
              
                if
              
               nu 
              
                ==
              
              
                7
              
              
                :
              
              
        k 
              
                =
              
              
                -
              
              k

            
          

【程序 24】
题目:有一分数序列: 2/1 ,3/2 ,5/3 ,8/5 ,13/8 ,21/13… 求出这个数列的前 20 项 之和。

            
              m
              
                =
              
              
                1
              
              
n
              
                =
              
              
                2
              
              
                sum
              
              
                =
              
              
                0
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                20
              
              
                )
              
              
                :
              
              
                sum
              
              
                +=
              
              n
              
                /
              
              m
    k
              
                =
              
              n
    n
              
                +=
              
              m
    m
              
                =
              
              k


              
                print
              
              
                (
              
              
                sum
              
              
                )
              
            
          

【程序 25】
题目:求 1+2!+3!+…+20! 的和

            
              
                def
              
              
                num
              
              
                (
              
              n
              
                )
              
              
                :
              
              
                if
              
               n
              
                ==
              
              
                1
              
              
                :
              
              
                return
              
              
                1
              
              
                return
              
               n
              
                *
              
              num
              
                (
              
              n
              
                -
              
              
                1
              
              
                )
              
              
                sum
              
              
                =
              
              
                0
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                5
              
              
                )
              
              
                :
              
              
                sum
              
              
                +=
              
              num
              
                (
              
              i
              
                )
              
              
                print
              
              
                (
              
              
                sum
              
              
                )
              
            
          

【程序 26】
题目:利用递归方法求 5! 。

            
              
                def
              
              
                num
              
              
                (
              
              a
              
                )
              
              
                :
              
              
                if
              
               a
              
                ==
              
              
                1
              
              
                :
              
              
                return
              
              
                1
              
              
                return
              
               a
              
                *
              
              num
              
                (
              
              a
              
                -
              
              
                1
              
              
                )
              
              
                print
              
              
                (
              
              num
              
                (
              
              
                5
              
              
                )
              
              
                )
              
            
          

【程序 27】
题目:利用递归函数调用方式,将所输入的 5 个字符,以相反顺序打印出来。

            
              string 
              
                =
              
              
                input
              
              
                (
              
              
                "请输入一个字符串 :"
              
              
                )
              
              
                def
              
              
                f
              
              
                (
              
              x
              
                )
              
              
                :
              
              
                if
              
               x 
              
                ==
              
              
                -
              
              
                1
              
              
                :
              
              
                #当变量的长度是-1时,返回
              
              
                return
              
              
                ''
              
              
                else
              
              
                :
              
              
                #否则返回字符串的位置向后移1位,直到变量的长度为-1
              
              
                return
              
               string
              
                [
              
              x
              
                ]
              
              
                +
              
               f
              
                (
              
              x
              
                -
              
              
                1
              
              
                )
              
              
                print
              
              
                (
              
              f
              
                (
              
              
                len
              
              
                (
              
              string
              
                )
              
              
                -
              
              
                1
              
              
                )
              
              
                )
              
            
          

【程序 28】
题目:有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。
问第 4 个人岁 数,他说比第 3 个人大 2 岁。
问第三个人,又说比第 2 人大两岁。
问第 2 个人,说比第1个人大两岁。
最后问第一个人,他说是 10 岁。请问第五个人多大?

            
              
                def
              
              
                age
              
              
                (
              
              s
              
                )
              
              
                :
              
              
                if
              
               s
              
                ==
              
              
                1
              
              
                :
              
              
                return
              
              
                2
              
              
                else
              
              
                :
              
              
                return
              
              
                2
              
              
                +
              
              age
              
                (
              
              s
              
                -
              
              
                1
              
              
                )
              
              
                print
              
              
                (
              
              age
              
                (
              
              
                4
              
              
                )
              
              
                +
              
              
                10
              
              
                )
              
            
          

【程序 29】
题目:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

            
              
                def
              
              
                ben
              
              
                (
              
              num
              
                )
              
              
                :
              
              
                if
              
               num
              
                //
              
              
                10000
              
              
                !=
              
              
                0
              
              
                :
              
              
                print
              
              
                (
              
              
                '输入错误'
              
              
                )
              
              
                else
              
              
                :
              
              
                while
              
               num
              
                !=
              
              
                0
              
              
                :
              
              
            n
              
                =
              
              num
              
                %
              
              
                10
              
              
            l
              
                .
              
              append
              
                (
              
              n
              
                )
              
              
            num
              
                //=
              
              
                10
              
              

num
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                '请输入一个不多于 5 位的正整数:'
              
              
                )
              
              
                )
              
              
l
              
                =
              
              
                [
              
              
                ]
              
              
ben
              
                (
              
              num
              
                )
              
              
                print
              
              
                (
              
              l
              
                )
              
            
          

【程序 30】
题目:一个数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位 与千位相同。

            
              
                def
              
              
                hui_wen
              
              
                (
              
              s
              
                )
              
              
                :
              
              
                # 基线条件
              
              
                if
              
              
                len
              
              
                (
              
              s
              
                )
              
              
                <
              
              
                2
              
              
                :
              
              
                # 字符串的长度小于2,则字符串一定是回文
              
              
                return
              
              
                True
              
              
                elif
              
               s
              
                [
              
              
                0
              
              
                ]
              
              
                !=
              
               s
              
                [
              
              
                -
              
              
                1
              
              
                ]
              
              
                :
              
              
                # 第一个字符和最后一个字符不相等,不是回文字符串
              
              
                return
              
              
                False
              
              
                # 递归条件 
              
              
                return
              
               hui_wen
              
                (
              
              s
              
                [
              
              
                1
              
              
                :
              
              
                -
              
              
                1
              
              
                ]
              
              
                )
              
              
                print
              
              
                (
              
              hui_wen
              
                (
              
              
                'abcdefgfedcba'
              
              
                )
              
              
                )
              
            
          

【程序 31】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。

            
              w
              
                =
              
              
                {
              
              
                'm'
              
              
                :
              
              
                'Monday'
              
              
                ,
              
              
                'tu'
              
              
                :
              
              
                'Tuesday'
              
              
                ,
              
              
                'w'
              
              
                :
              
              
                'Wednesday'
              
              
                ,
              
              
                'th'
              
              
                :
              
              
                'Thursday'
              
              
                ,
              
              
                'f'
              
              
                :
              
              
                'Firday'
              
              
                ,
              
              
                'sa'
              
              
                :
              
              
                'Saturday'
              
              
                ,
              
              
                'su'
              
              
                :
              
              
                'Sunday'
              
              
                ,
              
              
                't'
              
              
                :
              
              
                'Tuesday/Thursday'
              
              
                ,
              
              
                's'
              
              
                :
              
              
                'Saturday/Sunday'
              
              
                }
              
              
a
              
                =
              
              
                input
              
              
                (
              
              
                '请输入首字母或者2个字母:'
              
              
                )
              
              
                if
              
               a 
              
                in
              
               w
              
                .
              
              keys
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              w
              
                [
              
              a
              
                ]
              
              
                )
              
              
                else
              
              
                :
              
              
                print
              
              
                (
              
              
                '没有此星期'
              
              
                )
              
            
          

【程序 32】
题目:Press any key to change color

            
          

【程序 33】
题目:学习 gotoxy() 与clrscr() 函数。

            
          

【程序 34】
题目:练习函数调用

            
              
                def
              
              
                hanshu
              
              
                (
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                '调用函数'
              
              
                )
              
              
hanshu
              
                (
              
              
                )
              
            
          

【程序 35】
题目:文本颜色设置

开头部分:
\033[显示方式;前景色;背景色m + 结尾部分:\033[0m

注意:
开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;另外由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别;但是,建议按照默认的格式规范书写。
对于结尾部分,其实也可以省略,但是为了书写规范,建议\033[***开头,\033[0m结尾。

数值表示的参数含义:
**显示方式: **
0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
前景色:
30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)
背景色:
40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)

常见开头格式:
\033[0m 默认字体正常显示,不高亮
\033[32;0m 红色字体正常显示
\033[1;32;40m 显示方式: 高亮 字体前景色:绿色 背景色:黑色
\033[0;31;46m 显示方式: 正常 字体前景色:红色 背景色:青色

            
              
                print
              
              
                (
              
              
                "\033[1;31;40m您输入的帐号或密码错误!\033[0m"
              
              
                )
              
            
          

【程序 36】
题目:求 100 之内的素数

            
              
                import
              
               math

              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                101
              
              
                )
              
              
                :
              
              
    k
              
                =
              
              
                int
              
              
                (
              
              math
              
                .
              
              sqrt
              
                (
              
              i
              
                )
              
              
                )
              
              
                for
              
               j 
              
                in
              
              
                range
              
              
                (
              
              
                2
              
              
                ,
              
              i
              
                )
              
              
                :
              
              
                if
              
               i
              
                %
              
              j
              
                ==
              
              
                0
              
              
                :
              
              
                break
              
              
                if
              
               j
              
                >
              
              k
              
                :
              
              
                print
              
              
                (
              
              i
              
                )
              
              
                break
              
            
          

【程序 37】
题目:对 10 个数进行排序

            
              l
              
                =
              
              
                [
              
              
                12
              
              
                ,
              
              
                34
              
              
                ,
              
              
                62
              
              
                ,
              
              
                41
              
              
                ,
              
              
                74
              
              
                ,
              
              
                45
              
              
                ,
              
              
                25
              
              
                ,
              
              
                74
              
              
                ,
              
              
                26
              
              
                ,
              
              
                73
              
              
                ]
              
              
l
              
                .
              
              sort
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              l
              
                )
              
            
          

【程序 38】
题目:求一个 3*3 矩阵对角线元素之和

            
              
                sum
              
              
                =
              
              
                0
              
              
n
              
                =
              
              
                [
              
              
                [
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ]
              
              
                ,
              
              
                [
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ]
              
              
                ,
              
              
                [
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ]
              
              
                ]
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                3
              
              
                )
              
              
                :
              
              
                sum
              
              
                +=
              
              n
              
                [
              
              i
              
                ]
              
              
                [
              
              i
              
                ]
              
              
                print
              
              
                (
              
              
                sum
              
              
                )
              
            
          

【程序 39】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

            
              l
              
                =
              
              
                [
              
              
                12
              
              
                ,
              
              
                25
              
              
                ,
              
              
                26
              
              
                ,
              
              
                34
              
              
                ,
              
              
                41
              
              
                ,
              
              
                45
              
              
                ,
              
              
                62
              
              
                ,
              
              
                73
              
              
                ,
              
              
                74
              
              
                ]
              
              
m
              
                =
              
              
                44
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                len
              
              
                (
              
              l
              
                )
              
              
                )
              
              
                :
              
              
                if
              
               m
              
                <
              
              l
              
                [
              
              i
              
                ]
              
              
                :
              
              
        l
              
                .
              
              insert
              
                (
              
              i
              
                ,
              
              m
              
                )
              
              
                break
              
              
                print
              
              
                (
              
              l
              
                )
              
            
          

【程序 40】
题目:将一个数组逆序输出。

            
              l
              
                =
              
              
                [
              
              
                12
              
              
                ,
              
              
                34
              
              
                ,
              
              
                62
              
              
                ,
              
              
                41
              
              
                ,
              
              
                74
              
              
                ,
              
              
                45
              
              
                ,
              
              
                25
              
              
                ,
              
              
                74
              
              
                ,
              
              
                26
              
              
                ,
              
              
                73
              
              
                ]
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                len
              
              
                (
              
              l
              
                )
              
              
                +
              
              
                1
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              l
              
                [
              
              
                -
              
              i
              
                ]
              
              
                ,
              
              end
              
                =
              
              
                ' '
              
              
                )
              
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论