python3–练习题

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

1.程序分析:利用while语句,条件为输入的字符不为’\n’.

#用isdigit函数判断是否数字
#用isalpha判断是否字母
#isalnum判断是否数字和字母的组合

程序如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 4/3/2018 11:50 AM
# @Author  : zhdya
# @File    : demon5.py

i_str = 0
sum = 0
i_num = 0
i_spa = 0
i_spe = 0

while 1:
    aa = input("pls input sth you like: ")
    if aa == "\\n":
        break
    else:
        for i in aa:
            if i.isalpha():
                i_str += 1
            elif i.isdigit():
                i_num += 1
            elif i.isspace():
                i_spa += 1
            else :
                i_spe += 1
        print("the number of charcter is %d" %i_str)
        print("the number of number is %d" %i_num)
        print("the number of space is %d" %i_spa)
        print("the number of special worlds is %d" %i_spe)

二、随机输入一个数字,计算这个数字的阶乘和

注意判断:
- 如果用户输入非法字符,需要提示
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 4/3/2018 11:50 AM
# @Author  : zhdya
# @File    : demon5.py

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

sumt = 0
number = input("pls input a number: ")
if number.isdigit():
    for i in range(0, int(number)+1):
        sumt += jc(i)
    print("the {0} factorial is {1}".format(number, sumt))
elif number.isalpha():
    print("pls just input a number!!")
else:
    print("pls just input a number!!")

三、ABCD乘9=DCBA,A=? B=? C=? D=?

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 4/11/2018 9:16 PM
# @Author  : zhdyaa
# @File    : demon4.py

'''
## ABCD乘9=DCBA,A=? B=? C=? D=?

## 思路:
## A肯定不能等于2 一旦A等于2 就会出现5位数,不符合要求,所以A只能等于1,从而D等于9。
'''

for A in [1]:
    for B in range(0,10):
        for C in range(0,10):
            for D in [9]:
                if (A * 1000 + B * 100 + C * 10 + D) * 9 == (D * 1000 + C * 100 + B * 10 + A):
                    print("A is {0}".format(A))
                    print("B is {0}".format(B))
                    print("C is {0}".format(C))
                    print("D is {0}".format(D))
                    print("{0}{1}{2}{3}*9={3}{2}{1}{0}".format(A,B,C,D))

四、九宫格

'''
## 九宫格
##        -------------
##        | A | B | C |
##        | D | E | F |
##        | G | H | I |
##        -------------
## 思路:
##        A + B + C = A + D + G = G + H + I = C + F + I = A + E + I = G + E + C
##        9个数字均为唯一的;当A = 1;其它字母就不可以为1;同理去筛选已经被占用的数字
##        所有的横竖斜线加起来都等于15
'''
number = list()
for i in range (1,10):
    number.append(i)
print(number)

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 == G + H + I == 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的编码

编码

支持中文的编码:utf-8, gbk, gb2312

decode     		解码
encode   		编码


原有编码       ->      unicode编码    -> 目的编码
decode("utf-8")  解码  ->       unicode       ->  encode("gbk")  编码

不写python代码排头,就会报错。

s = "哈哈哈"
print(s)

这个代码文件被执行时就会出错,就是编码出了问题。

python默认将代码文件内容当作asci编码处理,但asci编码中不存在中文,因此抛出异常。

解决问题:

就是要让python知道文件中使用的是什么编码形式,对于中文,可以用的常见编码有utf-8,gbk和gb2312等。只需在代码文件的最前端添加如下:

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

控制台编码

说明:

文件申明是utf-8的编码,识别“哈哈”以后,以unicode对象的形式存在。

如果我们用type查看,存储形式是unicode,python在向控制台输出unicode对象的时候会自动根据输出环境的编码进行转换。

如果输出的不是unicode对象而是str类型。则会按照字符串的编码输出字符串。

从而出现utf8没法在gbk编码的控制台展现。

s = "哈哈哈"
m = s.decode("utf-8")
print(type(m))
print(m)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端黑板报

(转)JS算法系列-数组去重

1.遍历数组法 最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在数组的方法“indexOf”是ECM...

2079
来自专栏程序员同行者

Python 元组知识点

1603
来自专栏IT可乐

Redis详解(五)------ redis的五大数据类型实现原理

  前面两篇博客,第一篇介绍了五大数据类型的基本用法,第二篇介绍了Redis底层的六种数据结构。在Redis中,并没有直接使用这些数据结构来实现键值对数据库,而...

1100
来自专栏前端架构与工程

JavaScript几个作用域问题

1、 var a = 0 ; function f(){ a = 1; console.log(a); //全局变量a } console.log(a...

1826
来自专栏前端儿

ES6笔记(5)-- Generator生成器函数

Generator的声明方式类似一般的函数声明,只是多了个*号,并且一般可以在函数内看到yield关键字

861
来自专栏ShaoYL

深刻理解----修饰变量----关键字

34611
来自专栏JetpropelledSnake

Python入门之函数的介绍/定义/定义类型/函数调用/Return

 本篇目录:     一、 函数的介绍     二、 函数的定义     三、 定义函数的三种类型     四、 函数调用的阶段     五、 Return返回...

3735
来自专栏python3

python 字符编码与转换

比如一款游戏《大话西游》用的是gbk编码开发的。出口到欧美国家,是无法直接运行的。

1112
来自专栏云霄雨霁

Java--运行期类型鉴定(RTTI)

1625
来自专栏黑泽君的专栏

字符串的案例代码

字符串的案例   A:模拟用户登录   B:字符串的遍历   C:统计字符串中大写、小写及数字字符的个数   D:把字符串的首字母转成大写,其他...

890

扫码关注云+社区