2018北理工python言語プログラム設計期末テストプログラミング問題


最初の問題:シーザーのパスワードB
 
sr1="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
str1=input("")
str2=""
for i in str1:
    if i==" ":
        str2+=" "
    elif i >= 'a' and i <= 'z':
        j=sr1.find(i)
        str2=str2+sr1[(j+3)%26]
    elif i >= 'A' and i <= 'Z':
        j=sr1.find(i)
        str2=str2+sr1[(j+3)%26 + 26]
    else:
        str2 = str2 + i


print(str2)

第2題:水仙の花の数B
ls = []
for num1 in range(100, 1000):
    a = num1 % 10
    b = (num1//10) % 10
    c = num1 // 100
    if (a**3 + b**3 + c**3) == num1:
        ls.append(num1)


for i in ls[0:-1]:
    print("{},".format(i),end='')


print(ls[-1])

3番目の問題:名前を入力して、私はあなたに言いたいです.
name = input()
words = input()


print("{}, ,{}".format(name,words))

 
4番目の問題:垂直出力
str1 = input()


for i in str1:
    print(i)

5番目の問題:ハムレット語周波数統計
def getText():
    txt = open("hamlet.txt", "r").read()
    txt = txt.lower()
    for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
        txt = txt.replace(ch, " ")   # 
    return txt
 
hamletTxt = getText()
words  = hamletTxt.split()
counts = {}
for word in words:           
    counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True) 
for i in range(10):
    word, count = items[i]
    print ("{0:<10},{1:>5}".format(word, count))