练习题一:打印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,D是0-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'