Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python加密_Python_Encryption - Fatal编程技术网

Python加密

Python加密,python,encryption,Python,Encryption,所以对于一道考试题,我遵循了这个特定的伪代码,它基本上制作了一个程序,使用与ceasar密码相同的原理对数字序列进行加密。它应该可以工作,但由于某种原因,它会返回错误 TypeError: 'int' object is not iterable 这是密码,我希望你们能帮助我,非常感谢 plainNum = input("enter a number to encode ") codedNum = ' ' Key = input("enter a key ") for i in plain

所以对于一道考试题,我遵循了这个特定的伪代码,它基本上制作了一个程序,使用与ceasar密码相同的原理对数字序列进行加密。它应该可以工作,但由于某种原因,它会返回错误

TypeError: 'int' object is not iterable
这是密码,我希望你们能帮助我,非常感谢

plainNum = input("enter a number to encode ") 
codedNum = ' '
Key = input("enter a key ")

for i in plainNum:
    codedNum = codedNum + str((int(i)+key)%10)
    print codedNum
如果需要字符串,请使用原始输入:

plainNum = raw_input("enter a number to encode ") 

input将输入解释为Python代码;输入5,它将返回一个整数;输入带引号的“some text”,它将返回一个字符串。另一方面,原始输入返回未解释的输入。

最糟糕的修复方法是简单地更改

for i in plainNum:


您可能还想将key更改为key,以反映声明的变量 并使codeNum最初等于,而不是“”无空间与空间
只是簿记之类的东西

这是有效的,但如果我使用十进制,它就不起作用,如果我输入单词或空格,它也不起作用。首先检查一下条目是一个数字,比如:

try:
    float(element)
except ValueError:
    print "Not a float"
plainNum = plainNum.strip()
在使用以下内容删除任何空白后:

try:
    float(element)
except ValueError:
    print "Not a float"
plainNum = plainNum.strip()
但这会输出输入整数的编码数字:

plainNum = raw_input("enter a number to encode ") 
codedNum = ' '
key = input("enter a key ")

for i in plainNum:
    codedNum = codedNum + str((int(i)+key)%10)
    print codedNum
向用户询问带有原始输入的号码。这使输入成为一个字符串,您可以使用该字符串进行迭代:

for char in plainNum:

是的,现在这是一个字符串中的字符,因此您使用了inti函数。

Im不是这样:我希望用户输入一个数字,或者我是否应该将它们都更改为原始输入?thanks@user1655562:将数字解释为一系列数字;这是一个字符串,不是python整数值。@user1655562:另一方面,您的键是用作整数的,因此输入有一定意义,但您可以通过使用intraw_输入“…”强制它只接受整数。干杯,伙计,它现在工作了,哈哈!我完全无法理解为什么不是working@user1655562:阅读一些针对Python 3的文档可能会让您感到困惑。在3.0及更高版本中,input始终返回字符串,并且没有原始输入;在2.7及更早版本中,input尝试评估输入,您需要原始输入来获得字符串。我会使用数据验证,但这是用于试卷的特定目的,这个问题是当您必须将伪代码直接转换为您知道的语言时,所以我们不能改变它或优化它,否则我们会在真正的考试中失分,这只是一时的练习,同样在我上面发布的工作示例中,我不得不换一个键到另一个键。我会将plainNum中的for I改为for char,用于样式点。哦,是的,我现在明白你的意思了