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 条评论
登录 后参与评论

相关文章

  • python3–循环语句

    老七Linux
  • for 循环,while循环,break,continue,exit

    老七Linux
  • nginx+php-fpm出现502 bad gateway错误解决方法

    老七Linux
  • Python基础练习100题 ( 11

    这十道题的代码在我的github上,如果大家想看一下每道题的输出结果,可以点击以下链接下载:

    py3study
  • Python练手例子(7)

    程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

    py3study
  • python练习集100题(21-40)

    题目21:两个乒乓球队进行比赛,各出3人。甲队为a,b,c三人,乙队为x,y,z三人。以抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x...

    py3study
  • FME小案例分享-编顺序号

    最近有朋友咨询我,怎么对下图中的数据进行编号?怎么将最右边一列的后面加上一个顺序号,把那串0换成顺序号。

    数据处理与分析
  • python学习笔记(第一章)

    笔记;因为Python不像C语言那样的强结构语言,所以我学完C就开始学Python,脑袋嗡嗡的,不过还好,它的赋值很不一般,像C语言第一条应该是先申请一个变量然...

    天钧
  • 社交系统 ThinkSNS+ V2.2-V2.3 版本升级教程

    本升级指南仅适用于  2.2  版本升级至  2.3  版本,如果你并非 2.2 版本,请查看其他升级指南,Plus 程序不允许跨版本升级!

    ThinkSNS
  • 两会聚焦 | “一机游”如何成为数字文旅时代的“香饽饽”

    ? 据不完全统计,截止2019年2月底,全国已经有11个地方和政府明确发文规划或已经启动了“一机游”项目。 去北京爬长城,去云南游丽江,去西藏看布达拉宫,去黑...

    腾讯文旅

扫码关注云+社区

领取腾讯云代金券