Python基礎練習之字符串

1.	輸入字符串,判斷是否爲迴文串(正向讀與反向讀都相等的字符串,如madam)
s = input()
"Yes" if s[::-1] == s else "No"
madam


'Yes'



2.	從鍵盤輸入字符串,分別統計大寫,小寫,數字,其他字符的個數。提示:str.isupper(), str.islower()判別大小寫。str.isdigit()判斷是否是數字
str_ = input()
d, x, s, o = 0, 0, 0, 0
for i in str_:
    if i.isupper():
        d += 1
    elif i.islower():
        x += 1
    elif i.isdigit():
        s += 1
    else:
        o += 1
print("大寫:%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 in range(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="")
DEFACB
ABC.,!

4)自己編寫其他的使用字符串的相關應用的程序
str.title("hello world!")
'Hello World!'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章