python小练习(一)

最近在学习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;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值