str_ =input()
d, x, s, o =0,0,0,0for i in str_:if i.isupper():
d +=1elif i.islower():
x +=1elif i.isdigit():
s +=1else:
o +=1print("大写:%d, 小写:%d, 数字:%d, 其他:%d"%(d, x, s, o))
asfSFFS12345\.,
大写:4, 小写:3, 数字:5, 其他:3
3. 凯撒密码:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
1)输入原文字符串,加密后输出密文 2)输入密文,输出原文
# 方法一:哈希表映射# 1)输入原文字符串,加密后输出密文
s1 ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
s2 ="DEFGHIJKLMNOPQRSTUVWXYZABC"
ks1 ={}
ks2 ={}for i inrange(26):
ks1[s1[i]]= s2[i]
ks2[s2[i]]= s1[i]
s =input().upper()for i in s:print(ks1[i], end="")
abcXYZ
DEFABC
# 2)输入密文,输出原文
s =input().upper()for i in s:print(ks2[i], end="")
DEFABC
ABCXYZ
# 方法二:循环取余# 1)输入原文字符串,加密后输出密文
ks ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
s =input().upper()for i in s:print(ks[(ks.find(i)+3)%26], end="")
abcXYZ
DEFABC
# 2)输入密文,输出原文
s =input().upper()for i in s:print(ks[(ks.find(i)-3)%26], end="")
DEFABC
ABCXYZ
相关拓展
1)小写字母的凯撒密码程序
# 1)输入原文字符串,加密后输出密文
ks ="abcdefghijklmnopqrstuvwxyz"
s =input().lower()for i in s:print(ks[(ks.find(i)+3)%26], end="")
ABCxyz
defabc
# 2)输入密文,输出原文
s =input().lower()for i in s:print(ks[(ks.find(i)-3)%26], end="")
defabc
abcxyz
2)既有小写又有大写字母的凯撒密码程序
# 1)输入原文字符串,加密后输出密文
ks ="ABCDEFGhijklmnopqrstuvwxyz"
s =input()for i in s:print(ks[(ks.find(i)+3)%26], end="")
xyzDEF
ABCGhi
# 2)输入密文,输出原文
s =input()for i in s:print(ks[(ks.find(i)-3)%26], end="")
ABCGhi
xyzDEF
3)除字母外还包含其他符号的凯撒密码程序(其他符号不变)
# 1)输入原文字符串,加密后输出密文
ks ="ABCDEFGhijklmnopqrstuvw.!,"
s =input()for i in s:print(ks[(ks.find(i)+3)%26], end="")
ABC.,!
DEFACB
# 2)输入密文,输出原文
s =input()for i in s:print(ks[(ks.find(i)-3)%26], end="")