Python习题及编码讲解

Python习题及编码讲解

一、习题讲解:
1.1 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数:

        while 1:
    strings = input("Please inpur a string(quit will be exit): ")
    alpha, dig, space, other = 0, 0, 0, 0
    if strings.strip() == "quit":
        exit(1)
    for i in strings:
        if i.isdigit():
            dig += 1
        elif i.isspace():
            space += 1
        elif i.isalpha():
            alpha += 1
        else:
            other += 1
    print("alpha = {0}".format(alpha))
    print("dig = {0}".format(dig))
    print("space = {0}".format(space))
    print("other = {0}".format(other))

输出结果如下图:
Python习题及编码讲解_第1张图片

解析:
1、设置一个while循环,如果需要退出则输入quit即可退出程序。
2、设置数字、字母、空格、其他字符的默认取值为0,使用input( )函数并使用for、if循环嵌套遍历计算输入的内容。
3、当输入一段内容后,程序会根据函数判断这段内容中存在的数字、字母、空格、其他字符的数量并打印出来。
4、isdigit( )函数判断是否数字;isalpha( )判断是否字母; isspace( ) 判断是否为空。

1.2 ABCD乘9=DCBA,A=? B=? C=? D=? 答案:a=1,b=0,c=8,d=9 1089*9=9801:

for A in [1]:
    for B in range(0,10):
        for C in range(0,10):
            for D in [9]:
                if ((1000*A + 100*B +10*C + D)*9 == 1000*D + 100*C + 10*B + A ):
                    print("A = {0}".format(A))
                    print("B = {0}".format(B))
                    print("C = {0}".format(C))
                    print("D = {0}".format(D))
                    print("{0}{1}{2}{3}x9={4}{5}{6}{7}".format(A,B,C,D,D,C,B,A))
                    #或者:
                    print("{0}{1}{2}{3}x9={3}{2}{1}{0}".format(A,B,C,D))

输出结果如下图:
Python习题及编码讲解_第2张图片

解析:
1、从题目要求中可以看出A、D最大取值分别只能为1和9;B、C取值为0到9,固取值如A[1]、B[0,10]、C[0,10]、D[9] 。
2、根据题目要求1089*9=9801;可使用if循环推算出(1000*A + 100*B +10*C + D)*9 == 1000*D + 100*C + 10*B + A 。
3、然后分别输出A、B、C、D和1089*9=9801的值。

1.3 九宫格:所有的横竖斜线加起来都等于15:
例如:
Python习题及编码讲解_第3张图片

number = list()
for i in range(1,10):
    number.append(i)

count = 1
for A in number:
    a = number.copy()
    a.remove(A)
    for B in a:
        b = a.copy()
        b.remove(B)
        for C in b:
            c = b.copy()
            c.remove(C)
            for D in c:
                d = c.copy()
                d.remove(D)
                for E in d:
                    e = d.copy()
                    e.remove(E)
                    for F in e:
                        f = e.copy()
                        f.remove(F)
                        for G in f:
                            g = f.copy()
                            g.remove(G)
                            for H in g:
                                h = g.copy()
                                h.remove(H)
                                for I in h:
                                    if (A+B+C == D+E+F == G+H+I == A+D+G == B+E+H == C+F+I == A+E+I == G+E+C == 15):
                                        print('''
                                        第{9}种例子
                                        -------------
                                        | {0} | {1} | {2} |
                                        | {3} | {4} | {5} |
                                        | {6} | {7} | {8} |
                                        -------------'''.format(A,B,C,D,E,F,G,H,I,count))
                                        count += 1

输出结果如下:
Python习题及编码讲解_第4张图片 Python习题及编码讲解_第5张图片 Python习题及编码讲解_第6张图片

解析:
1、设置列表number并遍历1~9的数。
2、循环 A~I 的值,使用copy函数赋予给新值,并移除已循环的值,以此类推到 I 结束。
3、最后根据循环到 I 的每3个的值进行相等计算是否等于15:A+B+C == D+E+F == G+H+I == A+D+G == B+E+H == C+F+I == A+E+I == G+E+C == 15。

1.4 阶乘累加:

def jc(n):
    result = 1
    if n == 0:
        return result
    else:
        for i in range(1,n+1):
            result *= i
        return result

n = input("Please input number n: ")
count = 0
for i in range(0,int(n)+1):
    count += jc(i)
print("count = {0}".format(count))

输出结果如下:
Python习题及编码讲解_第7张图片

解析:
1、创建一个函数名为 jc,如果n的值为0则等于1,如果n为大于1的值,则进行for遍历计算赋值。
2、当输入相应的值时,程序会进行判断并将阶乘相加输出对应的结果,如上图。

二、Python编码介绍:
1.1 Python支持中文的编码:
utf-8 , gbk , gb2312
uft-8 国际通用,常用有数据库、编写代码
gbk 如windows的cmd使用:
Python习题及编码讲解_第8张图片

python2 默认支持的是ASCII码;
python3 默认则已支持UTF-8。

1.2 Python中如何进行编码的修改和使用

  • 可以在每次编写代码是做好编码设置
    # -- coding: utf-8 --,如下图
    这里写图片描述

  • 也可以在代码中添加如下函数:

import sys
reload(sys)
print(sys.getdefaultencoding())
sys.setdefaultencoding(“utf-8”)
print(sys.getdefaultencoding())
  • python2也可以使用如下的转码的过程:
    源有编码 -> unicode编码 -> 目的编码
decode("UTF-8") 解码 --> unicode  --> encode("gbk") 编码

Python习题及编码讲解_第9张图片

你可能感兴趣的:(Python)