python经典编程题-Python之经典编程题,不看你会后悔哦

例子1:draw.py是一个turtle绘图的python源程序,该程序采用了import turtle模式引入turtle库,并绘制了一个图形。请编写程序,以该源文件作为文件输入,修改文件中的代码,将import使用方式改为import turtle as t模式,并输出文件为draw2.py,要求draw2.py运行结果与draw.py一致。

b2a9ffc6-3b7c-4208-ad7c-6beac6577d13

在这里我们首先应了解文件的读取,写模式的正确表达,及字符编码表示。对文件的一次性读取,读取之后的字符串储存在变量中还是列表类型中。第一步,读取文件,创建draw2.py文件。

fi = open("draw.py","r",encoding='utf-8')

fo = open("draw2.py","w",encoding='utf-8')

txt = fi.read()

完成数据的读取和储存之后,进行字符串元素的替换,利用到txt.replace()操作,替换所需的元素。并将结果写在fo文件中,结果如下:

txt = txt.replace("import turtle","import turtle as t")

fo.write(txt)

fi.close()

fo.close()

205c30b9-c5e7-493c-8d63-f5005af6990c

例子2:凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替换算法对信息中每一个英文字符循环替换为字母表序列该字符后面第三个字符,即循环 左移三位。基础中文字符的Unicode编码范围是[0x4e00,0x9fa5],共20902个字符。请以10451位循环移位数量,编写中文文本的类凯撒密码加解密方法。

原文字符P,其密文字符C满足如下条件:

C = (P + 10451) mod 20902

加密和解密方法一致,满足:

P = (C + 10451) mod 20902

标点符号、英文字母不加密。

首先我们手动输入原文,创建空字典,遍历循环基础中文字符Unicode编码值范围,按照所给的循环移位数量进行移位,最后输出加解密后的译文。

89a5767f-edd2-478c-9a93-46d5e53ac34e

s = input("输入(加解密前):")

d = {}

for c in [0x4e00,0x9fa5]:

for i in range(20902):

d[chr(i+c)] = chr((i+10451) % 20902 + c)

print("输出(加解密后):" +"".join([d.get(c,c) for c in s]))

大家对此类文章感兴趣可以关注小编获得后续动态!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值