Python学习日常

1.凯撒密码

ord()函数和chr函数
ord函数将字符转换为ASCII值
例:

ord('a')
97
 ord('b')
98
ord('c')
99

chr()函数将数值转换为ASCII对应的字符

print chr(0x30), chr(0x31), chr(0x61)   # 十六进制
0 1 a
print chr(48), chr(49), chr(97)         # 十进制
0 1 a

1.1题解

password = input("input password:\n")
k=int(input("input number:\n"))
while(k>26):
    k-=26
for i in password:
    s=ord(i)+k
    s1=s
    s2=s
    if i == ' ':
        print(" ",end='')
    elif ord('z')>=ord(i)>=ord('a'):
        while(s1>ord('z')):
            s1-=26
        print(chr(s1),end='')
    elif ord('Z')>=ord(i)>=ord('A'):
        while(s2>=ord('Z')):
            s2-=26
        print(chr(s2),end='')
    else:
        print(i,end='')
unword=input("\nplease input unword:")
for i in unword:
    ss=ord(i)-k
    s3=ss
    s4=ss
    if i == ' ':
        print(" ",end='')
    elif ord('z')>=ord(i)>=ord('a'):
        while(s3<ord('a')):
            s3+=26
        print(chr(s3),end='')
    elif ord('Z')>=ord(i)>=ord('A'):
        while(s4<ord('A')):
            s4+=26
        print(chr(s4),end='')
    else:
        print(i,end='')

2.秘钥

所需要的知识

2.1切片

【start: end: step】
切片的start 和end 中指的是索引,step指的是间隔。
list[::-1]反向打印

list=[1,2,3,'a',5]
print(list[:-1] )
print(list[-1:] )
print(list[1:4] )
print(list[-4:-1] )
print(list[4:1:-1] )
print(list[-1:-4:-1] )
print(list[0:4:2] )

output:
[1, 2, 3, ‘a’]
[5]
[2, 3, ‘a’]
[2, 3, ‘a’]
[5, ‘a’, 3]
[5, ‘a’, 3]
[1, 3]

2.2删除字符

2.2.1.replace函数

s=‘AABX-125’
s.replace(‘A’,’’)
output: BX-125
s.relplace(‘A’,’’,1)
output : ABX-125

2.2.2.translate函数

s=‘ABX-125’
s.translate({ord(‘A’):None for in ‘’})

2.2.3.remove函数(处理列表)

s[1,2,3,4]
s.remove(1)
output :[2,3,4]

2.2.4.pop

s=[1,2,3]
a.pop(0)
output [2,3]

2.3题解

s=input()
k=int(input())
s=s.translate({ord("-"):None}).upper()
x=len(s)%k
string=s[:x]
for i in range(x,len(s),k):
    if string:
        string +="-"+s[i:i+k]
    else:
        string +=s[i:i+k]
print(string)

3.transform

3.1函数

3.1.1 split函数

split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
input函数输入值为字符
split可将其分为列表

3.2 题解

s=input().split()
l=len(s)
a=0
if l==1:
    print(0)
else:
    for i in range(0, l ):
        a=int(min(s))*(i)+a
        s.remove(min(s))
    print("\n",a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值