例子1:draw.py是一个turtle绘图的python源程序,该程序采用了import turtle模式引入turtle库,并绘制了一个图形。请编写程序,以该源文件作为文件输入,修改文件中的代码,将import使用方式改为import turtle as t模式,并输出文件为draw2.py,要求draw2.py运行结果与draw.py一致。
在这里我们首先应了解文件的读取,写模式的正确表达,及字符编码表示。对文件的一次性读取,读取之后的字符串储存在变量中还是列表类型中。第一步,读取文件,创建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()
例子2:凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替换算法对信息中每一个英文字符循环替换为字母表序列该字符后面第三个字符,即循环 左移三位。基础中文字符的Unicode编码范围是[0x4e00,0x9fa5],共20902个字符。请以10451位循环移位数量,编写中文文本的类凯撒密码加解密方法。
原文字符P,其密文字符C满足如下条件:
C = (P + 10451) mod 20902
加密和解密方法一致,满足:
P = (C + 10451) mod 20902
标点符号、英文字母不加密。
首先我们手动输入原文,创建空字典,遍历循环基础中文字符Unicode编码值范围,按照所给的循环移位数量进行移位,最后输出加解密后的译文。
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]))
大家对此类文章感兴趣可以关注小编获得后续动态!