在Python3中如何在while循环中嵌套if语句
我有以下代码的问题在Python3中如何在while循环中嵌套if语句,python,if-statement,while-loop,rsa,Python,If Statement,While Loop,Rsa,我有以下代码的问题 try: while True: # Get next line from file line = fileHandler.readline() plaintext = pow(int(line), a, n) # a, n and line read from file are integers. if len(str(plaintext)) % 2 != 0: plain
try:
while True:
# Get next line from file
line = fileHandler.readline()
plaintext = pow(int(line), a, n) # a, n and line read from file are integers.
if len(str(plaintext)) % 2 != 0:
plaintext = '0{}'.format(plaintext) # adding zero if odd no of digits
i = 0
while i < len(plaintext) - 1:
print(plaintext)
row = int(plaintext[i])
col = int(plaintext[i + 1])
decrypted.append(matrix[row][col])
if row > 0:
row -= 1
print(matrix[row][col - 1])
i = i + 2
print(plaintext)
if not line:
print(decrypted)
break
except ValueError:
pass
这种情况是正确的
我希望我明白了。谢谢大家!
当len(纯文本)%2!=0使下面while循环中的代码失败,它无法执行
是的,这就是if语句的工作原理
当我将while循环移出if时,不会执行任何操作
现在还不清楚你把它移动了多远,但它仍然需要在外部while循环中,你可以使用一个范围而不是另一个while循环
while True:
...
plaintext = str(pow(int(line), a, n))
if len(plaintext) % 2 != 0:
plaintext = '0{}'.format(plaintext) # adding zero if odd no of digits
# indent if you only want to execute this for odd length numbers
for i in range(0, len(plaintext), 2):
print(plaintext)
# ...
当len(纯文本)%2!=0使下面while循环中的代码失败,它无法执行
是的,这就是if语句的工作原理
当我将while循环移出if时,不会执行任何操作
现在还不清楚你把它移动了多远,但它仍然需要在外部while循环中,你可以使用一个范围而不是另一个while循环
while True:
...
plaintext = str(pow(int(line), a, n))
if len(plaintext) % 2 != 0:
plaintext = '0{}'.format(plaintext) # adding zero if odd no of digits
# indent if you only want to execute this for odd length numbers
for i in range(0, len(plaintext), 2):
print(plaintext)
# ...
嗯,你试过打印出
str(纯文本)
来看看长度是偶数还是奇数吗?我试过了。我一行一行地读,所以几行甚至其他行都很奇怪。好吧,那么if语句运行,或者它不运行。。。我不确定我是否理解这个问题。也许你可以添加一个else语句来让它更清楚?@Lafexlos这会有什么不同。它仍然会进入循环,对吗?if语句不会运行。但当%2==0时,将不执行进一步的操作。是的,我会加上它。但是你现在明白了吗?嗯,你试过打印出str(纯文本)
,看看长度实际上是偶数还是奇数?我知道了。我一行一行地读,所以几行甚至其他行都很奇怪。好吧,那么if语句运行,或者它不运行。。。我不确定我是否理解这个问题。也许你可以添加一个else语句来让它更清楚?@Lafexlos这会有什么不同。它仍然会进入循环,对吗?if语句不会运行。但当%2==0时,将不执行进一步的操作。是的,我会加上它。但是你现在明白了吗?对于这个问题,它抛出了一个错误,对范围内的i(0,len(纯文本),2):TypeError:int类型的对象没有编辑len()来修复它,这是有效的!我从来没有想过。谢谢为此,它向我抛出一个错误,表示范围内的i(0,len(纯文本),2):TypeError:type'int'的对象没有编辑len()来修复它,这是有效的!我从来没有想过。谢谢