python的逻辑应用

python的逻辑语言一般分为条件语句、逻辑语句,常用的是if判断语句;while、for逻辑循环语句;嵌套判断、循环语句。


1.使用python语句编写99乘法口诀。

要实现为下图:

python的逻辑应用

查看规律,发现:

1.每行都有一个数字相同;

2.另外一个数字递增;

3.当数字相同是换行。

数字递增的话刚好使用for语句加上range函数即可实现,同一个数字下的数字叠加积可以使用for的嵌套实现,加上判断换行时间即可实现乘法口诀语句

for i in range(1, 10):
    for j in range(1, i+1):
        if i != j:
            print("{0}*{1}={2}".format(j, i, i * j), end="\t")
        else:
            print("{0}*{1}={2}".format(j, i, i * j))

运行结果如下

python的逻辑应用


2.判断一行字符,分别统计其中英文字母、空格、数字、其他的个数。

要统计字符的个数有以下需要做到的:

1.对每个字符进行单独的判断;

2.根据判断来统计字符的数量。

要想对字符实现单独判断直接使用for将所有字符单独提取出来,然后使用字符的isspace()、isdigit()、isalpha()等判断字符的数量。

python的逻辑应用


3.实现ABCD * 9 = DCBA。

实现这个我们就是简单是使用for语句将所有的情况计算出来,加入if判断符合是数字即可。

python的逻辑应用

但是这样的话程序运行的效率就没有保证。

通过查看ABCD * 9 = DCBA我们可以发现以下规律:

1.数字ABCD*9得出的还是4位数,那么A的值不可能大于2,也不可能等于0,那么A等于1;

2.A等于1的话那么D可以计算出结果为9;

根据上面的方法我们改良即可的得出以下:

python的逻辑应用

计算结果虽然一样,但是这样计算的次数将减少9*9次,大大的增加了效率。


4.实现9宫格的计算

-------------
| A | B | C |
-------------
| D | E | F |
-------------
| G | H | I |
-------------

要求有:

1.横竖斜的和都为15;

2.数字不能一样;

3.数字范围为1-9。

要完成这个程序需要要的是:

1.所有都是1-9之间的数字,其中一个提取了,那么其他的就不能在提取;

2.横竖斜的和都是15。

那要实现就是将1-9的数字嵌套循环,没去一个数字就剔除,可以先建立一个列表1-9的做for循环,每取得一个数值就将列表的数字剔除,剩下的列表做下一次循环,知道最后一次循环,加入判断横竖斜和都是15的数字即可实现,这个要是使用list生成,list的copy()函数、remove()函数,加上if、for的嵌套循环即可,实现的程序如下:

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 ) == ( A + D + G ) == ( D + E + F ) == ( G + H +I ) == ( C + F + I ) == ( B + E + H ) \
                                            == ( C + F + I ) == ( A + E + I ) == ( G + E + C ):
                                        print("""count is {9}
                                     -------------
                                     | {0} | {1} | {2} |
                                     -------------
                                     | {3} | {4} | {5} |
                                     -------------
                                     | {6} | {7} | {8} |
                                     ------------- """.format(A, B, C, D, E, F, G, H, I, count))
                                        count += 1

运行结果有8个满足,

python的逻辑应用


也可以使用列表生成来实现程序:

number = [i for i in range(1,10)]
count1 = 1
for A in range(1,10):
    for B in [i for i in number if i != A]:
        for C in [i for i in number if i != A and i != B]:
            for D in [i for i in number if i != A and i != B and i != C]:
                for E in [ i for i in number if i != A and i != B and i != C and i != D ]:
                    for F in [ i for i in number if i != A and i != B and i != C and i != D and i != E]:
                         for G in [i for i in number if i != A and i != B and i != C and i != D and i != E and i != F]:
                             for H in [ i for i in number if i != A and i != B and i != C and i != D and i != E and i != F and i != G ]:
                                 for I in [ i for i in number if i != A and i != B and i != C and i != D and i != E and i != F and i != G  and i != H]:
                                     if (A + B + C) == (A + D + G) == (D + E + F) == (G + H + I) == (C + F + I) == (
                                             B + E + H) \
                                             == (C + F + I) == (A + E + I) == (G + E + C):
                                         print("""count is {9}
                                     -------------
                                     | {0} | {1} | {2} |
                                     -------------
                                     | {3} | {4} | {5} |
                                     -------------
                                     | {6} | {7} | {8} |
                                     ------------- """.format(A, B, C, D, E, F, G, H, I, count1))
                                         count1 += 1

得出的结果完全一样,效率也有所提高。


5.python的字符编码。

python下常使用的字符编码有:ASCII码、GBK、Unicode、UTF-8

1).为了处理英文字符,产生了ASCII码。 
2).为了处理中文字符,产生了GBK。 
3).为了处理各国字符,产生了Unicode。 

4).为了提高Unicode存储和传输性能,产生了UTF-8,它是Unicode的一种实现形式。

python程序在不同的环境下打印中文字符等的时候容易出现乱码,原因的是字符编码的问题,

正常我们会在程序的开头声明我们要编码的格式,

python的逻辑应用

如果出现乱码直接更改编码格式即可,也可以使用decode解码、encode编码来解决

python转码的过程:

源有编码 -> unicode编码 -> 目的编码

编码错误的话

python的逻辑应用

更改编码即可。

python的逻辑应用