python之几个练习题

练习题一:打印99乘法表

#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time     : 2018/4/10 21:35
# @Author   : hantong
# @File     : 20180410_lianxi.py
for  i in range(1,10):
    for j in range(1,i+1):
         h = i*j
         i -= 0
         print("{0}x{1}={2}".format(j, i, h),end=' ')
    print('\n')

执行结果:

1x1=1 
1x2=2 2x2=4 
1x3=3 2x3=6 3x3=9 
1x4=4 2x4=8 3x4=12 4x4=16 
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 

练习题二:

A,BC,D是0-9的整数,ABCD*9=DBCA,计算A,B,C,D的值

#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time     : 2018/4/12 11:41
# @Author   : hantong
# @File     : 20180412_lianxi.py

# A,B,C,D0-9的整数,ABCD*9=DBCA,计算A,B,C,D的值
for A in range(1,10):
    for B in range(0,10):
        for C in range(0,10):
            for D in range(1,10):
                if (1000*A+100*B+10*C+D)*9 == (1000*D+100*C+10*B+A):
                    print("A={0},B={1},C={2},D={3}".format(A,B,C,D))

执行结果:

A=1,B=0,C=8,D=9

编码问题:

str和unicode都是basestring的子类。严格意义上说,str其实是字节串,它是unicode经过编码后的字节组成的序列。对UTF-8编码的str’汉’使用len()函数时,结果是3,因为实际上,UTF-8编码的’汉’ == ‘\xE6\xB1\x89’。unicode才是真正意义上的字符串,对字节串str使用正确的字符编码进行解码后获得,并且len(u’汉’) == 1。再来看看encode()和decode()两个basestring的实例方法,理解了str和unicode的区别后,这两个方法就不会再混淆了:

#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time     : 2018/4/12 11:41
# @Author   : hantong
# @File     : 20180412_lianxi.py
u = u''
print(u)
print (repr(u))
s = u.encode('UTF-8')
u2 = s.decode('UTF-8')
print(repr(s))

执行结果:


'汉'
b'\xe6\xb1\x89'





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值