python凯撒加密实验报告_python凯撒加密之%

original = str(input('give one: '))

K = int(input('move ahead K letters: '))

for i in original:

if (ord(i)+K)< ord('z'):

j = chr(ord(i)+K)

print(j,end = '')

else:

b = chr(ord(i)-ord('z')+ord('a')+K)

print(b,end = '')只有小写时这个是很简单易懂的。但是有了大写就不可以了,加多重elif出来的结果不对。

original = str(input('give one: '))

K = int(input('move ahead K letters: '))

for i in original:

if i>='A' and i <= 'Z':

j = chr(ord('A')+(ord(i)-ord('A')+K)%26)#注意整除符号%的运用。

print(j,end='')

elif i >='a' and i <= 'z':

j = chr(ord('a')+(ord(i)-ord('a')+K)%26)

print(j,end='')

小于26的数%26,商为0,余数还是原数。

大于26的数%26,商为1,相当于原数减去了26。

仔细体会%的用法。

另有一例,也是利用%进行了“减法”

#求三位数的逆序数 倒过来 不是线性代数相关

a = int(input('give: '))

d1 = a//100

d2 = a%100//10

d3 = a%10

print(d3*100+d2*10+d1)

#四位数

a = int(input('give: '))

d1 = a//1000

d2 = a%1000//100

d3 = a%100//10

d4 = a%10

print(d4*1000+d3*100+d2*10+d1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值