python乱码问号_Python3典型小实例和乱码问题

1.实例一:

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

1.程序分析:利用while语句,条件为输入的字符不为'\n'. #用isdigit函数判断是否数字 #用isalpha判断是否字母 #isalnum判断是否数字和字母的组合 。

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2018/4/10 22:13

# @Author : Feng Xiaoqing

# @File : string.py

# @Function: -----------

num_dig=0

num_alph=0

num_space=0

num_other=0

while 1:

strings=input("Please input string:")

if strings=="quit":

exit(0)

for i in strings:

if i.strip().isdigit():

num_dig += 1

elif i.strip().isalpha():

num_alph += 1

elif i.isspace():

num_space += 1

else:

num_other += 1

print("数字个数为:{0}".format(num_dig))

print("字母个数为:{0}".format(num_alph))

print("空格个数为:{0}".format(num_space))

print("其他字符个数为:{0}".format(num_other))

运行结果:

Please input string:kadsf83543k#### asdflka

数字个数为:5

字母个数为:13

空格个数为:1

其他字符个数为:4

2.实例二:

题目:写出代码实现输入一个数字,可以自动计算这个数的阶乘。

亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

如:

0! = 1

1! = 1

2! = 2*1=2

3! = 3*2*1=6

程序代码:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2018/4/11 22:48

# @Author : Feng Xiaoqing

# @File : 4.JieCheng_for_n.py

# @Function: ----------

n=input("Please input a number n: ")

result = 1

num = 1

for i in range(1,int(n)+1):

num *=i

result += num

print("{0}的阶乘为:{1}".format(n,result))

另一种:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2018/4/10 21:59

# @Author : Feng Xiaoqing

# @File : jiecheng_for_n.py

# @Function: -----------

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

运算结果:

Please input a number n: 8

8的阶乘为:46234

另一种:

Please input number n:8

count = 46234

3.实例三:

题目:ABCD乘9=DCBA,A=? B=? C=? D=? 计算A、B、C、D的值分别为多少?

答案:a=1,b=0,c=8,d=9 1089*9=9801

程序代码:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2018/4/11 22:14

# @Author : Feng Xiaoqing

# @File : 2.ABCDX9=DCBA.py

# @Function: -----------

for A in range(1,10):

for B in range(0,10):

for C in range(0,10):

for D in range(0,10):

if (A*1000+B*100+C*10+D)*9==D*1000+C*100+B*10+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={3}{2}{1}{0}".format(A,B,C,D))

运行结果:

A=1

B=0

C=8

D=9

1089x9=9801

4.实例四:

题目:写出代码实现九宫格数独的计算。

-------------

| A | B | C |

| D | E | F |

| G | H | I |

-------------

A,B,C,D,E,F,G,H,I 取值为1-9

所有的横竖斜线加起来都等于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

程序代码:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2018/4/11 23:31

# @Author : Feng Xiaoqing

# @File : jiu_Gong_Ge.py

# @Function: -----------

count=0

list=[0,1,2,3,4,5,6,7,8,9]

for A in list:

a=list.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:

count += 1

print("""

---第{9}种----

| {0} | {1} | {2} |

| {3} | {4} | {5} |

| {6} | {7} | {8} |

-------------

""".format(A,B,C,D,E,F,G,H,I,count))

运行结果:

---第1种----

| 2 | 7 | 6 |

| 9 | 5 | 1 |

| 4 | 3 | 8 |

-------------

---第2种----

| 2 | 9 | 4 |

| 7 | 5 | 3 |

| 6 | 1 | 8 |

-------------

---第3种----

| 4 | 3 | 8 |

| 9 | 5 | 1 |

| 2 | 7 | 6 |

-------------

---第4种----

| 4 | 9 | 2 |

| 3 | 5 | 7 |

| 8 | 1 | 6 |

-------------

---第5种----

| 6 | 1 | 8 |

| 7 | 5 | 3 |

| 2 | 9 | 4 |

-------------

---第6种----

| 6 | 7 | 2 |

| 1 | 5 | 9 |

| 8 | 3 | 4 |

-------------

---第7种----

| 8 | 1 | 6 |

| 3 | 5 | 7 |

| 4 | 9 | 2 |

-------------

---第8种----

| 8 | 3 | 4 |

| 1 | 5 | 9 |

| 6 | 7 | 2 |

-------------

python中的编码问题:

1.utf-8 Pycharm程序中和cmd中都不会出现乱码。

171633_DfHO_3804957.png

171725_mYYj_3804957.png

2.当为gbk时都有没乱码

171941_gp5k_3804957.png

172119_TCOG_3804957.png

3、文件申明是utf-8的编码,识别“你好”以后,以unicode对象的形式存在。如果我们用type查看,存储形式是unicode,python在向控制台输出unicode对象的时候会自动根据输出环境的编码进行转换。如果输出的不是unicode对象而是str类型。则会按照字符串的编码输出字符串。从而出现utf8没法在gbk编码的控制台展现

172929_eciw_3804957.png

4、列表中Python2中控制台出现乱码,cmd中不会出现乱码,python3中都无乱码:

173325_p0ea_3804957.png

173536_fJCZ_3804957.png

python3中:

173203_zqDU_3804957.png

5、编码转换报错:python2中有控制台有乱码,cmd中没有乱码,python3中均无乱码:

173955_fLvu_3804957.png

174034_yS7J_3804957.png

python3:

174225_zi8y_3804957.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值