最近在学习python编程,发现一些很有趣的小练习。
一,十进制转换为二进制
方法一:
decimalism=input(‘请输入十进制数字:’)
binary=bin(decimalism)[2:]
方法二:
decimalism=input(‘请输入十进制数字:’)
binary=”
while decimalism>=0:
binary+=str(decimalism%2)
if decimalism>1:
decimalism=decimalism/2
else:
break
print binary[::-1]
二,二进制转化为十进制
方法一:
binary=raw_input(‘请输入二进制数字:’)
print int(binary,base=2)
方法二:
binary=raw_input(‘请输入二进制数字:’)
decimalism=0
for i in range(len(binary)):
decimalism+=int(binary[len(binary)-1-i])*pow(2,i)
print decimalism
三,字符串加密 a-e b-f c-g A-E B-F
结题步骤:
1,获得原文中字符的ASSICC码值,将其加4位获得对应的密文字符
2,特殊情况:当原文为w时,往后順移4位得到a,即ASSICC码为119时取97,120时取98,121时取99,122时取100
3,以上得到如果输入wxyz或WXYZ时,应该取明文字符的ASSICC码减去22位得到密文字符的ASSICC
4,a-z(97-122),A-Z(65-90)
words=raw_input(‘请输入明文:’)
encode_words=”
for i in words:
if 97<=ord(i)<=118 or 65<=ord(i)<=86:
encode_words+=chr(ord(i)+4)
elif 119<=ord(i)<=122 or 87<=ord(i)<=90:
encode_words+=chr(ord(i)-22)
else:
print ‘明文中有非英文字符’
break
print encode_words
四,字符串解密
def words_decode(encode_words):
words=”
for i in encode_words:
if 101<=ord(i)<=122 or 69<=ord(i)<=90:
words+=chr(ord(i)-4)
elif 97<=ord(i)<=100 or 65<=ord(i)<=68:
words+=chr(ord(i)+22)
print words
encode_words=raw_input(‘请输入密文:’)
for i in encode_words:
if i in (‘0123456789’):
print ‘密文中包含非字母字符’
break
words_decode(encode_words)
五,定义一个列表如:[1,2,1,2,3,1,2,4,1,5]列出列表中每个元素及出现的次数并打印出来
方法一:
names=[1,2,1,2,3,1,2,4,1,5]
dict={}
for i in names:
if dict.has_key(i):
dict[i]+=1
else:
dict[i]=1
print dict
方法二:
names=[1,2,1,2,3,1,2,4,1,5]
tongji={}
for i in names:
number=0
for j in names:
if i==j:
number+=1
tongji[i]=number
print tongji
六,打印一个菱形
方法一:
for i in range(1,7):
print (5-i)’ ‘,(2*i-1)‘*’
for j in range(1,6):
print (j)’ ‘,((5-j)*2+1)‘*’
方法二:
for i in range(11):
line = ”
for j in range (abs(5 - i)):
line += ’ ‘;
for j in range(2 * (5 - abs(i - 5)) + 1):
line += ‘*’;
print line;