问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 这个程序实现不了

发布网友 发布时间:2022-04-07 12:09

我来回答

2个回答

热心网友 时间:2022-04-07 13:38

我复制你的源码,在源码中我发现了,你的错误,你main函数中的输入的参赛mykey大小写写错了,当然,在运行代码之前,请把pyperclip安装上(pip install pyperclip)

我现在把源码附上:

# coding = utf-8
import pyperclip

def encryptMessage(key, message):
    ciphertext = [''] * key
    for col in range(key):
        pointer = col
        while pointer < len(message):
            ciphertext[col] += message[pointer]
            pointer += key
    return ''.join(ciphertext)

def main():
    myMessage = 'Common sense is not so common.'
    mykey = 8
    ciphertext = encryptMessage(mykey, myMessage)
    print(ciphertext + '|')
    pyperclip.copy(ciphertext)

if __name__ == '__main__':
    main()

热心网友 时间:2022-04-07 14:56

这篇文章准确说是『Python 源码剖析』的读书笔记,整理完之后才发现很长,那就将就看吧。
1. 简单的例子
先从一个简单的例子说起,包含了两个文件 foo.py 和 demo.py
[foo.py]def add(a, b):
return a + b
[demo.py]import foo

a = [1, 'python']
a = 'a string'def func():
a = 1
b = 257
print(a + b)print(a)if __name__ == '__main__':
func()
foo.add(1, 2)

执行这个程序
python demo.py

输出结果
a string258

同时,该文件目录多出一个 foo.pyc 文件
2. 背后的魔法
看完程序的执行结果,接下来开始一行行解释代码。
2.1 模块
Python 将 .py 文件视为一个 mole,这些 mole 中,有一个主 mole,也就是程序运行的入口。在这个例子中,主 mole 是 demo.py。
2.2 编译
执行 python demo.py 后,将会启动 Python 的解释器,然后将 demo.py 编译成一个字节码对象 PyCodeObject。
有的人可能会很好奇,编译的结果不应是 pyc 文件吗,就像 Java 的 class 文件,那为什么是一个对象呢,这里稍微解释一下。
在 Python 的世界中,一切都是对象,函数也是对象,类型也是对象,类也是对象(类属于自定义的类型,在 Python 2.2 之前,int, dict 这些内置类型与类是存在不同的,在之后才统一起来,全部继承自 object),甚至连编译出来的字节码也是对象,.pyc 文件是字节码对象(PyCodeObject)在硬盘上的表现形式。
在运行期间,编译结果也就是 PyCodeObject 对象,只会存在于内存中,而当这个模块的 Python 代码执行完后,就会将编译结果保存到了 pyc 文件中,这样下次就不用编译,直接加载到内存中。pyc 文件只是 PyCodeObject 对象在硬盘上的表现形式。
这个 PyCodeObject 对象包含了 Python 源代码中的字符串,常量值,以及通过语法解析后编译生成的字节码指令。PyCodeObject 对象还会存储这些字节码指令与原始代码行号的对应关系,这样当出现异常时,就能指明位于哪一行的代码。
2.3 pyc 文件
一个 pyc 文件包含了三部分信息:Python 的 magic number、pyc 文件创建的时间信息,以及 PyCodeObject 对象。
magic number 是 Python 定义的一个整数值。一般来说,不同版本的 Python 实现都会定义不同的 magic number,这个值是用来保证 Python 兼容性的。比如要*由低版本编译的 pyc 文件不能让高版本的 Python 程序来执行,只需要检查 magic number 不同就可以了。由于不同版本的 Python 定义的字节码指令可能会不同,如果不做检查,执行的时候就可能出错。
下面所示的代码可以来创建 pyc 文件,使用方法
python generate_pyc.py mole_name

例如
python generate_pyc.py demo
[generate_pyc.pyc]import impimport sysdef generate_pyc(name):
fp, pathname, description = imp.find_mole(name) try:
imp.load_mole(name, fp, pathname, description)
finally: if fp:
fp.close()if __name__ == '__main__':
generate_pyc(sys.argv[1])
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“笑指旧山归路长”的出处是哪里 PCB为什么要拼板,PCB拼板打样有哪些好处? 绘制紫外吸收光谱时,我发现最大吸收波长是333nm,此时吸光度为4.01 对吸光度测量值有何影响? 陆垚知马俐的歌词是什么? 玫瑰花水中的养殖方法 陈年柚子茶如何做 陈年柚子茶的制作方法 在答题卡上改题号是指那一道题扣分还是整个卷子都没? ...考试时我写到了卷子上,会怎么样?会不会按抄袭 高考时在卷子上不小心画了道怎么办? 关于股票盈亏的计算 股票持仓成本价计算:你的股票成本价到底是多少 股票盈亏成本是怎么算出来的? 汕头市合辉染织有限公司怎么样? 绍兴华南纺织印染有限公司怎么样? 许金和的创业故事 汕头市海德染织有限公司怎么样? 大连哪里有印染纺织品的地方? 四川有哪些纺织厂? 高阳县超华纺织印染有限公司怎么样? 汕头经济特区新昌纺织印染厂有限公司怎么样? 浙江华东纺织印染有限公司怎么样? 中国五大印染基地 凉山彝族自治州教师公招考试辅导哪家更有经验?我需要找一家靠谱的。 我在成都,考凉山州公务员,在西昌考试吗?如果是国考在哪里考?非国考又在哪里考? 西昌事事业单位招考三不限需要考多少分 西昌市阳光实验学校招生要考试吗 2014上半年四川西昌事业单位考试笔试内容? 2011年西昌市的教师公招考试什么时候开始报名呢,西昌的教师公招考试主要考什么 凉山州西昌教师公招笔试辅导吗?有上过的么? 请教同一支股票经过多次不同价格、不同股数的买卖后股票成本价和盈亏和浮动盈亏是如何计算的? 有什么办法能减小长时间带听诊器后的耳朵痛? 请问股票的浮动盈亏要怎么计算的? 怎样缓解听诊器对耳朵的疼痛 股票怎样计算盈亏点数 为什马我一戴听诊器耳朵就痛?? 股票的盈亏计算方法 耳朵 有点 痛 小米手机,总是经常弹出Sim卡工具界面,该怎么办呢? 股票盈亏计算方法T+0 你好,我想请问一下,我在给别人测量血压的时候,耳朵戴着听诊器,听诊器被敲击了几下,耳朵被这敲击声震 小米手机一直跳usim卡应用怎么办 我今天给20人测的血压,现在脑袋耳朵疼是怎么回事 表格excel怎样使用公式计算盈利/亏损值,其值=(股价一成本价)*股数。 长时间戴听诊器对耳朵有害吗 我的小米手机,usim出错什么意思,怎么弄,电话也打不出去,接不到 小米手机经常提醒SIM卡是怎么回事? 听诊器戴耳朵上有反正吗,是不是怎么戴都可以 小米出现您的手机已经被保护锁定请插入原始sim卡怎么解决 听诊器戴耳朵上有反正吗,是不是怎么戴