有一段python的编码程序如下图_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))

输出结果如下图:

b335cd9ba282cac043b2b0ede45381a5.png

解析:

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))

输出结果如下图:

d6cfa3e9d05b168e5eef9fef5d2e1eb9.png

解析:

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:

例如:

78dd76e31cd0fdf129da488ad9ebf8ff.png

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

输出结果如下:

6e832d37a9cc8a72ce54766f159cf9ae.png326dbda32c27360d6e4935a5375e67d7.png58df13f82e29686e6196258152cac5d0.png

解析:

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))

输出结果如下:

874e877cbd77f8bbe549196ce1ecac2f.png

解析:

1、创建一个函数名为 jc,如果n的值为0则等于1,如果n为大于1的值,则进行for遍历计算赋值。

2、当输入相应的值时,程序会进行判断并将阶乘相加输出对应的结果,如上图。

二、Python编码介绍:

1.1 Python支持中文的编码:

utf-8 , gbk , gb2312

uft-8 国际通用,常用有数据库、编写代码

gbk 如windows的cmd使用:

5109b666bf045a0e1c6b4f0faa355525.png

python2 默认支持的是ASCII码;

python3 默认则已支持UTF-8。

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

可以在每次编写代码是做好编码设置

# -- coding: utf-8 --,如下图

d11f072101484afd52cd1a8dff1b8ee1.png

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

import sys

reload(sys)

print(sys.getdefaultencoding())

sys.setdefaultencoding(“utf-8”)

print(sys.getdefaultencoding())

python2也可以使用如下的转码的过程:

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

decode("UTF-8") 解码 --> unicode --> encode("gbk") 编码

f99fd20a6262f0401c975f8ad79a5534.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值